KEMBAR78
Threads concept in java | PDF
Multithreading
● A technique by which a single set of code can
be used by several processors at different
stages of execution.
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
Difference between Process and
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.
Multitasking
● Multitasking is a 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.
Difference between multitasking and
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.
Life cycle of Thread
Contd'
●
NEW- A thread that 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.
Thread Creation
Threads can be 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.
Some of methods used 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
Thread Creation Example
public class 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();
}
}

Threads concept in java

  • 1.
    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.
  • 6.
  • 7.
    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(); } }