Java Programming-Threads
Java Programming-Threads
By
SANJIT KUMAR BARIK
Threads
class ABC Single Thread
{
public static void main(String args[ ]) Execution Starts
{
Statement – 1;
Statement – 2;
Statement – 3; Continuing Flow of
Statement – 4; Execution
Statement – n;
} Execution Ends
}
2
Threads
A Java program is executed in a particular sequence. The
program begins, runs through a sequence of executions,
and finally ends.
}
}
4
Threads
A Java program can be divided into sub-programs.
6
Creating Threads – run( ) method
7
Creating Threads - run( ) method
8
Creating Threads - start( ) method
9
Extending Thread Class - overriding the run( )
class Mythread extends Thread
{ Thread Object Newborn state
JRE
Running state Runnable state
10
Extending Thread Class - overriding the run( )
11
Extending Thread Class – Example 1
12
Extending Thread Class – Example 1
class C extends Thread class ThreadTest
{ {
public void run ( ) public static void main(String args[ ])
{ {
for ( int k = 1; k <= 5; k++ ) new A( ).start( );
{ new B( ).start( );
System.out.println("From Thread C : k = " + k); new C( ).start( );
} }
System.out.println("Exit From Thread C"); }
}
}
D:\jdk1.8.0_111\jdk1.8.0_111\bin>javac ThreadTest.java
13
Extending Thread Class – Example 1
D:\jdk1.8.0_111\jdk1.8.0_111\bin>java ThreadTest D:\jdk1.8.0_111\jdk1.8.0_111\bin>java ThreadTest
From Thread A : i = 1 From Thread A : i = 1
From Thread A : i = 2 From Thread A : i = 2
From Thread A : i = 3 From Thread B : j= 1
From Thread A : i = 4 From Thread A : i = 3
From Thread A : i = 5 From Thread A : i = 4
Exit From Thread A From Thread A : i = 5
From Thread B : j = 1 Exit From Thread A
16
Life Cycle of a Thread
New Thread New Born
stop
start
stop
Active Thread Running Runnable Dead
yield
Killed Thread
suspend resume
sleep notify stop
wait
Blocked Idle Thread
17
Life Cycle of a Thread – New Born State
New Born State: Thread is created
18
Life Cycle of a Thread – Runnable State
Runnable State:
19
Life Cycle of a Thread – Runnable State
Runnable State:
21
Life Cycle of a Thread – Running State
22
Life Cycle of a Thread – Blocked State
Thread is suspended
Thread is sleeping
Thread is waiting
23
Life Cycle of a Thread – Dead State
Dead State:
24
Thread Methods – Example 2
25
Thread Methods – Example 2
class C extends Thread class ThreadTest2
{ {
public void run ( ) public static void main(String args[ ])
{ {
for ( int k = 1; k <= 5; k++ ) A threadA = new A( );
{ B threadB = new B( ); C
System.out.println("From Thread C : k = " + k); threadC = new C( );
if ( k == 1 ) System.out.println(" Start
try Thread A ");
{ threadA.start( );
sleep(1000); System.out.println(" Start Thread B ");
} threadB.start( );
catch( Exception e) { } System.out.println(" Start Thread C ");
threadC.start( );
} System.out.println(" End of Main Thread
System.out.println("Exit From Thread C"); ");
} }
} }
26
Thread Methods – Example 2
27
Thread Priorities
setPriority(intNumber) – Sets priority for a Thread
MIN_PRIORITY = 1
NORM_PRIORITY = 5
MAX_PRIORITY = 10
28
Thread Priorities – Example 3
29
Thread Priorities – Example 3
class C extends Thread
{
public void run()
{
for(int k=1;k<=5;k++)
{
System.out.println(k + "*" +7+ "=" +(k*7));
}
System.out.println("End of the 3rd Thread");
}
}
30
Thread Priorities – Example 3
public class Multithread
{
public static void main(String args[ ])throws IOException
{
A ThreadA=new A();
B ThreadB=new B();
C ThreadC=new C();
ThreadA.setPriority(Thread.NORM_PRIORITY);
ThreadB.setPriority(Thread.MAX_PRIORITY);
ThreadC.setPriority(Thread.MIN_PRIORITY);
System.out.println("The priority of Thread A is "+ThreadA.getPriority());
System.out.println("The priority of Thread B is "+ThreadB.getPriority());
System.out.println("The priority of Thread C is "+ThreadC.getPriority());
ThreadA.start();
ThreadB.start();
ThreadC.start();
}
}
31
Thread Priorities – Example 3
D:\jdk1.8.0_111\jdk1.8.0_111\bin>java Multithread
The priority of Thread A is 5
The priority of Thread B is 10
The priority of Thread C is 1
1*5=5
2*5=10
3*5=15
4*5=20
5*5=25
End of the 2nd Thread
1*3=3
2*3=6
3*3=9
4*3=12
5*3=15
End of the 1st Thread
1*7=7
2*7=14
3*7=21
4*7=28
5*7=35
End of the 3rd Thread
32
Implementing Runnable Interface
Runnable interface declares run( ) method
Implement run( )
“ + i );
}
System.out.println(“End of ThreadX “ );
}
}
34
Implementing Runnable Interface – Example 4
Class RunnableTest
{
public static void main(String args[ ])
{
X runnable = new X( );
Thread threadX = new Thread(runnable);
threadX.start( );
System.out.println(“End of main Thread“ );
}
}
35
Implementing Runnable Interface – Example 4
36
References
37
Thank You
38