Tuesday, 7 February 2017

Java Tutorial: Java Synchronization (Synchronization in java | synchronized block in java_V1)


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) 
Table.java
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.java
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);
    }

}
Thread2.java
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);
    }

}
SynchronizationDemo.java
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();
    }

}
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:
https://sites.google.com/site/ramj2eev1/home/javabasics/Synchronization_Block_Demo_App.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/Synchronization_Block_Demo_App

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/644abf74fceeb240066dd3d2fe2e4b1fb6c4bd48/BasicJava/Synchronization_Block_Demo_App/?at=master

See also:

  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • 1 comment: