Click here to watch in Youtube :
https://www.youtube.com/watch?v=8xVeS0zxy08&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge
![]() |
| Java Tutorial: Java Synchronization (Synchronization in java | Synchronization method in java_V1) |
public class Table
{
/*
* Method is synchronized
*/
public synchronized void printTable(int n)
{
System.out.println("Thread Name = "
+ Thread.currentThread().getName());
for (int i = 1; i <= 5; i++)
{
System.out.println(n * i);
try
{
Thread.sleep(400);
}
catch (Exception e)
{
System.out.println(e);
}
}
}
/*
* Method is not synchronized.
*/
/*public void printTable(int n)
{
System.out.println("Thread Name = "
+ Thread.currentThread().getName());
for (int i = 1; i <= 5; i++)
{
System.out.println(n * i);
try
{
Thread.sleep(400);
}
catch (Exception e)
{
System.out.println(e);
}
}
}*/
}
public class Thread1 extends Thread
{
private Table t;
public Thread1(Table t,String threadName)
{
super(threadName);
this.t = t;
}
public void run()
{
t.printTable(5);
}
}
public class Thread2 extends Thread
{
private Table t;
public Thread2(Table t,String threadName)
{
super(threadName);
this.t = t;
}
public void run()
{
t.printTable(50);
}
}
import java.io.IOException;
public class SynchronizationDemo
{
public static void main(String[] args) throws IOException
{
Table tableObj = new Table();
Thread1 t1 = new Thread1(tableObj,"Thread 1");
Thread2 t2 = new Thread2(tableObj,"Thread 2");
t1.start();
t2.start();
}
}
-------------------------------------
If printTable method is synchronized,
then below will be the output:
-------------------------------------
Thread Name = Thread 1
5
10
15
20
25
Thread Name = Thread 2
50
100
150
200
250
-----------------------------------------
If printTable method is not synchronized,
then below will be the output:
-----------------------------------------
Thread Name = Thread 2
Thread Name = Thread 1
5
50
10
100
15
150
20
200
25
250
Click the below link to download the code:

No comments:
Post a Comment