The document outlines multithreading as a technique allowing multiple processors to execute a set of code by sharing threads within a process, which are lightweight units of execution. It differentiates between processes and threads, explaining that processes have their own memory space while threads share a common memory. Additionally, it describes the life cycle of a thread, methods for its creation, and important thread management functions.
Multithreading
● A techniqueby which a single set of code can
be used by several processors at different
stages of execution.
2.
Process and Threads
●A process is a thread in execution.
● A process may be divided ninto number of
independent units known as threads.
● A thread is a dispatchable unit of work.
● Threads are light-weight processes within a
process .
● A process is a collection of one or more
threads and associated system resources
3.
Difference between Processand
Threads
● Process can be
divided into multiple
threads
● Each process has its
own memory space
● It is difficult to create
a process
● Threads cannot be
sub divided.
● Threads of the same
process share a
common memory
space
● It is easy to create a
thread.
4.
Multitasking
● Multitasking isa method where multiple tasks
are performed during the same period of time
● They are executed concurrently instead of
sequentially
● The tasks share common processing
resources, such as a CPU and main memory.
5.
Difference between multitaskingand
multithreading
● An ability to run
several programs
simultaneously
potentially by using
several processors or
by time sharing the
resources available.
● An ability to run
serveral processes of
a single program
simultaneously
potentially using
several processors or
by time sharing the
resources available.
Contd'
●
NEW- A threadthat is just instantiated is in new state. When a start()
method is invoked, the thread moves to the ready state from which it is
automatically moved to runnable state by the thread scheduler.
● RUNNABLE (ready running)-A thread executing in the JVM is in running
state.
●
BLOCKED - A thread that is blocked waiting for a monitor lock is in this
state. This can also occur when a thread performs an I/O operation and
moves to next (runnable) state.
● WAITING - A thread that is waiting indefinitely for another thread to
perform a particular action is in this state.
●
TIMED_WAITING - A thread that is waiting for another thread to perform
an action for up to a specified waiting time is in this state.
● TERMINATED - A thread that has exited is in this state.
8.
Thread Creation
Threads canbe created using two ways
● By implementing the Runnable class
● By extending the Thread class
● start() method is used to start the thread
● run() method is executed after calling the start()
● run() can contain the code you wish to perform
using thread.
9.
Some of methodsused in Threads
● start()- to begin the execution of thread
● setName()- to set the name for a thread
● getName()- to get the name of a thread
● Sleep() - to make the thread wait for specified
amount of time.
● setPriority()- to set the priority of the threads
● getPriority()- to get the priority of threads
10.
Thread Creation Example
publicclass Threadlearning extends Thread
{
public void run()
{
System.out.println("i am thread ");
}
public static void main(String[] args)
{
Threadlearning t = new Threadlearning();
t.start();
}
}
public class Thread2way implements
Runnable
{
public void run()
{
System.out.println("i am in thread");
}
public static void main(String args[])
{
(new Thread(new Thread2way())).start();
}
}