A thread’s life cycle can be divided into five states:
- New: The thread is in this state after it has been created and before it has been started.
- Ready: The thread is in this state and is waiting to be scheduled by the operating system.
- Running: The thread is in this state and is currently executing.
- Blocked: The thread is in this state and is waiting for a resource to become available.
- Terminated: The thread has completed its execution and is no longer active.
java training in coimbatore will help students to understand the object-oriented programming in a better way. They will get an understanding of how to write a program using Java. The course also includes a session on how to debug programs written in Java.
Creating Thread
To create a thread in most programming languages, you typically use a thread library or framework that provides a Thread
class or similar. Here’s an example in Python:
In this example, the worker
function is the target of the new thread. When the thread.start()
method is called, the worker
function is executed in a new, separate thread.
Note that the actual process of creating and starting a thread can vary depending on the programming language and thread library you’re using.
Thread Scheduler
The thread scheduler is the component of the operating system responsible for scheduling and managing the execution of threads. Its job is to determine which thread should be executed next and to allocate CPU time to that thread.
The exact behavior of the thread scheduler depends on the operating system, but in general, it uses various algorithms and policies to decide which thread to run and for how long. For example, some operating systems use a round-robin scheduling policy, where each ready thread is given a fixed time slice to run. Others use a priority-based scheduling policy, where threads with higher priority are given preference over threads with lower priority.
In general, the thread scheduler is responsible for ensuring that all threads are executed in an efficient and fair manner, while also balancing the needs of each thread and the overall system. The exact details of how the thread scheduler works and the policies it uses can have a significant impact on the performance and behavior of your system, so it’s important to understand the basic principles and behavior of the thread scheduler for your operating system.
Sleeping a thread
To make a thread “sleep” or pause its execution for a certain period of time, you can use the sleep
method provided by the thread library or framework you’re using. For example, in Python:
In this example, the worker
function first prints a message to indicate that it has started, and then calls the time.sleep(5)
method to pause its execution for 5 seconds. After 5 seconds, the worker
function continues its execution and prints a message to indicate that it has finished.
Note that while the worker
function is sleeping, the operating system can schedule another thread to run, so the actual time that the worker
function spends sleeping may be longer or shorter than the specified sleep time, depending on the behavior of the thread scheduler and other factors.