Chapter 4 Thread
Chapter 4 Thread
Chapter 4.
Java Threads
Transparency No. 1
Java Threads
Transparency No. 2
Java Threads
Cont…
Transparency No. 3
Java Threads
all the programs have at least one thread, known as the main thread, that
program's execution.
Transparency No. 4
Java Threads
Transparency No. 5
Java Threads
Transparency No. 6
Java Threads
Cont…
Transparency No. 7
Java Threads
Creating Thread
A thread is created either by "creating or implementing"
the Runnable Interface or by extending the Thread class.
These are the only two ways through which we can create a
thread.
Let's dive into details of both these way of creating a thread:
Transparency No. 8
Java Threads
Thread Class
A Thread class has several methods and constructors which allow us to perform
various operations on a thread. The Thread class extends the Object class.
The Object class implements the Runnable interface. The thread class has the
following constructors that are used to perform various operations.
•Thread()
•Thread(Runnable, String name)
•Thread(Runnable target)
•Thread(ThreadGroup group, Runnable target, String name)
•Thread(ThreadGroup group, Runnable target)
•Thread(ThreadGroup group, String name)
•Thread(ThreadGroup group, Runnable target, String name, long stackSize)
Transparency No. 9
Java Threads
Transparency No. 10
Java Threads
ThreadExample1.java
// Implementing runnable interface by extending Thread class
public class ThreadExample1 extends Thread {
// run() method to perform action for thread.
public void run()
{
int a= 10;
int b=12;
int result = a+b;
System.out.println("Thread started running..");
System.out.println("Sum of two numbers is: "+ result);
}
public static void main( String args[] )
{
// Creating instance of the class extend Thread class
ThreadExample1 t1 = new ThreadExample1();
//calling start method to execute the run() method of the Thread class
t1.start();
}
}
Transparency No. 11
Java Threads
output
Transparency No. 12
Java Threads
Transparency No. 13
Java Threads
currently executing
Transparency No. 14
Java Threads
Priority
Thread.MIN_PRIORITY: 1
Thread.MAX_PRIORITY: 10
Thread.NORM_PRIORITY: 5
Transparency No. 15
Java Threads
Synchronization
Transparency No. 16
Java Threads
Transparency No. 17
Java Threads
Transparency No. 18
Java Threads
Chapter 5
Transparency No. 19
Java Threads
• During an RMI local objects are passed by object copying whereas remote
objects are passed by reference.
• A remote object is built from two different classes:
Server class – implementation of server-side code.
Transparency No. 20
Java Threads
Transparency No. 21
Java Threads
Transparency No. 22
Java Threads
Java RMI
Transparency No. 23
Java Threads
invocation.
Transparency No. 24
Java Threads
Java RMI
ones.
Transparency No. 25
Java Threads
on different machines.
Transparency No. 26
Java Threads
RMI Implementation
Client Remote
Object Object
Stub Skeleton
Transparency No. 27
Java Threads
• Remote References
Refer to remote objects, but can be invoked on a client just
like a local object reference
• Remote Interfaces
Declare exposed methods like an RPC specification
Transparency No. 28
Java Threads
• Client Stub
lives on the client
• Sever Skeleton
lives on the server
Transparency No. 29
Java Threads
Remote Interface
Remote Interface
implements implements
Remote Object
Client Stub Skeleton
(Server)
Transparency No. 30
Java Threads
RMI Implementation
collection.
Transparency No. 31
Java Threads
RMI Registry
Transparency No. 32
Java Threads
RMI Registry Architecture
Remote
Client
Object
Skeleton Server
Stub
Registry
“Bob”
Transparency No. 33
Java Threads
Transparency No. 34
Java Threads
Implementing the remote objects: Remote objects must implement one or more
remote interfaces.
(either local or remote) and other methods (which are available only locally).
Transparency No. 35
Java Threads
Cont…
Implementing the clients: Clients that use remote
objects can be implemented at any time after the
remote interfaces are defined, including after the
remote objects have been deployed.
Transparency No. 36
Java Threads
Transparency No. 37