Click here to watch in Youtube :
https://www.youtube.com/watch?v=Jvc2CdsipxU&list=UUhwKlOVR041tngjerWxVccw
DisplayCounter.java
Outputhttps://www.youtube.com/watch?v=Jvc2CdsipxU&list=UUhwKlOVR041tngjerWxVccw
DisplayCounter.java
public class DisplayCounter
{
public synchronized void printCount()
{
try
{
System.out.println("Thread Name = "
+ Thread.currentThread().getName());
for (int i = 5; i > 0; i--)
{
System.out.println("Counter --- " + i);
Thread.sleep(500);
}
System.out.println();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
DisplayThread.javapublic class DisplayThread extends Thread
{
private DisplayCounter dc;
public DisplayThread(String name, DisplayCounter dc)
{
super.setName(name);
this.dc = dc;
}
public void run()
{
dc.printCount();
}
}
SynchronizationDemo.javapublic class SynchronizationDemo
{
public static void main(String[] args)
{
DisplayCounter displayCounter = new DisplayCounter();
DisplayThread thread1 = new DisplayThread("Thread1", displayCounter);
DisplayThread thread2 = new DisplayThread("Thread2", displayCounter);
thread1.start();
thread2.start();
}
}
-------------------------------------
If printCount method is synchronized,
then below will be the output:
-------------------------------------
Thread Name = Thread1
Counter --- 5
Counter --- 4
Counter --- 3
Counter --- 2
Counter --- 1
Thread Name = Thread2
Counter --- 5
Counter --- 4
Counter --- 3
Counter --- 2
Counter --- 1
-----------------------------------------
If printCount method is not synchronized,
then below will be the output:
-----------------------------------------
Thread Name = Thread1
Counter --- 5
Thread Name = Thread2
Counter --- 5
Counter --- 4
Counter --- 4
Counter --- 3
Counter --- 3
Counter --- 2
Counter --- 2
Counter --- 1
Counter --- 1
Click the below link to download the code:
No comments:
Post a Comment