Click here to watch in Youtube :
https://www.youtube.com/watch?v=jBbUd5JifE8&list=UUhwKlOVR041tngjerWxVccw
Click the below Image to Enlarge
![]() |
| Java Tutorial: Java Synchronization (Synchronization in java | synchronized block in java_V1) |
public class Table
{
public void printTable(int n)
{
/*
* Synchronized block
*/
synchronized (this)
{
System.out.println("Thread Name = "
+ Thread.currentThread().getName());
for (int i = 1; i <= 5; i++)
{
System.out.println(n * i);
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
System.out.println(e);
}
}
}
}
}
Thread1.javapublic class Thread1 extends Thread
{
private Table t;
public Thread1(Table t,String threadName)
{
super(threadName);
this.t = t;
}
public void run()
{
t.printTable(5);
}
}
Thread2.javapublic class Thread2 extends Thread
{
private Table t;
public Thread2(Table t,String threadName)
{
super(threadName);
this.t = t;
}
public void run()
{
t.printTable(50);
}
}
SynchronizationDemo.javaimport 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();
}
}
Output-------------------------------------
If printTable method has synchronized block,
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 does not have synchronized block,
then below will be the output:
-----------------------------------------
Thread Name = Thread 2
50
Thread Name = Thread 1
5
100
10
150
15
200
20
25
250
Click the below link to download the code:

No comments:
Post a Comment