Multithreaded programming

—     Executing several programs simultaneously

—     A thread is a program with single flow of control

—     Java supports multithreading.

Single threaded program












Multithreaded program

















                     A program that contains multiple flow of control is called multithreading. here there are four threads with one main and three others.The main thread is designed to create and start the other 3 threads.Once initiated by the main thread, the other threads run concurrently and share resources .These threads are called lightweight thread

Creating threads

Are implemented in the form of object that contains a method called run()







The run method is invoked by initiating the start() method.

A new thread can be created by

—    By extending the Thread Class

—    By implementing the Runnable Interface

Extending the Thread Class

—     By extending the class java.lang.Thread

—     It includes

—  Declare the class as extending the thread class

—  Implement the run() method

—  Create a thread object and call the start()

Declaring the class

 








Implementing the run() Method

 Starting the new thread





Program

















Stopping and blocking a thread

—    Stopping a thread

◦      By calling stop() method

◦      Causes the thread moves to dead state

◦      Also moves to dead state at the end

—    Blocking  a thread

◦      Temporarily suspending or blocking

 


Life cycle of a thread

—     New born state

—     Runnable state

—     Running state

—     Blocked state

—     Dead state

A thread is always in one of these five states

 

Transition diagram of a thread

 














New born state

—     When we create a thread, it is born and is in new born state

—     The thread is not yet scheduled for running

◦      Can be scheduled for running by start() method

◦      Kill it by stop() method

Runnable state

—     Thread is ready for execution and waiting for availability

—     Will be having a queue of threads waiting

—     Given timeslots RR fashion if no priority

—     Relinquish control to another thread is done by yield()method

 

Running state

 

—  Processor has given its time to the thread of execution

—  A running thread may relinquish its control when

◦      It has been suspended using suspend() -Revived by resume()

◦      It has made to sleep using the sleep(time)

◦      it has hold to wait until some event to occur -Done by using wait() and notify()

Blocked state

—     When it is prevented from entering into runnable state

—     Happens when the thread is in

◦      Suspended

◦      Sleeping   or

◦      waiting

 

Dead state

—     A running thread ends its life

◦      By the end of the run() normally

◦      Premature death by stop()

 

Program






















Output




















Thread Priority

We can set priority by setPriority()

ThreadName.setPriority(intNumber);

 the intNumber is an integer value which sets the priority

 It has several priority constants

MIN_PRIORITY=1

NORM_PRIORITY=5

MAX_PRIORITY=10

 

  intNumber may assume any value b/w 1 & 10

 

 

program




















 








Implementing Runnable interface

 

—     Declare the class as implementing the Runnable interface

—     Implement the run() method

—     Create a thread by defining an object that is instantiated from this “runnable”class as the target of the thread

—     Call the thread’s start()method to run the thread

Class X implements Runnable

{

      Public void run()

{

For(int i=1;i<10;i++)

{
            System.out.println(“Thread X”+i);

}
System.out.println(”End of the thread”);

}

}

Class RunnableTest

{
                  public static void main(String args[])

{

 X runnable =new X();

Thread threadX=new Thread(runnable)’

thread.start();

System.out.println(”End of the main thread”);

}

}
     

Output

End of mainThread

thread:1

thread:2

thread:3

thread:4

thread:5

thread:6

thread:7

thread:8

thread:9

thread:10

End of threadX

 

 














No comments:

Post a Comment