Java Program: Multi Thread optimum way utilize CPU time using Thread(Runnable object, String thread_name)
Program
import java.util.logging.Level;
import java.util.logging.Logger;
class ThreadRunnnable {
public static void main(String[] args)
{
new ThreadRun();
new ThreadRunn();
System.out.println("Main Thread Starts");
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(1500);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
class ThreadRun implements Runnable
{
ThreadRun()
{
Thread t=new Thread(this,"Thread1");
t.start();
System.out.println("Thread 1");
}
@Override
public void run()
{
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
class ThreadRunn implements Runnable
{
ThreadRunn()
{
Thread t=new Thread(this,"Thread1");
t.start();
System.out.println("Thread 2");
}
@Override
public void run()
{
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(300);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Output
Thread 1
Thread 2
Main Thread Starts
Main Thread 1
Thread 2 1
Thread 1 1
Thread 2 2
Thread 2 3
Thread 2 4
Main Thread 2
Thread 2 5
Thread 1 2
Main Thread 3
Main Thread 4
Thread 1 3
Main Thread 5
Thread 1 4
Thread 1 5
Output of this program not unique it always random, because it depends on thread sleep method due to multiple threads, one thread waits and other threads are executing that's why java multi threads utilize the cpu time in optimum way
import java.util.logging.Level;
import java.util.logging.Logger;
class ThreadRunnnable {
public static void main(String[] args)
{
new ThreadRun();
new ThreadRunn();
System.out.println("Main Thread Starts");
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(1500);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
class ThreadRun implements Runnable
{
ThreadRun()
{
Thread t=new Thread(this,"Thread1");
t.start();
System.out.println("Thread 1");
}
@Override
public void run()
{
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
class ThreadRunn implements Runnable
{
ThreadRunn()
{
Thread t=new Thread(this,"Thread1");
t.start();
System.out.println("Thread 2");
}
@Override
public void run()
{
for(int i=1;i<=5;i++)
{
System.out.println(i);
try {
Thread.sleep(300);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRun.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Output
Thread 1
Thread 2
Main Thread Starts
Main Thread 1
Thread 2 1
Thread 1 1
Thread 2 2
Thread 2 3
Thread 2 4
Main Thread 2
Thread 2 5
Thread 1 2
Main Thread 3
Main Thread 4
Thread 1 3
Main Thread 5
Thread 1 4
Thread 1 5
Output of this program not unique it always random, because it depends on thread sleep method due to multiple threads, one thread waits and other threads are executing that's why java multi threads utilize the cpu time in optimum way
Comments
Post a Comment
Share this to your friends