Saturday, 10 June 2017

Java Tutorial: Java Synchronization (Synchronization in java | synchronized block in java_V2) ~ foundjava


Click here to watch in Youtube :
https://www.youtube.com/watch?v=uzbWlktdMLk&list=UUhwKlOVR041tngjerWxVccw

Click the below Image to Enlarge
Java Tutorial: Java Synchronization (Synchronization in java | synchronized block in java_V2) 
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);
                }
            }
        }
    }
}
SynchronizationDemo.java
import java.io.IOException;

public class SynchronizationDemo
{

    public static void main(String[] args) throws IOException
    {
        Table tableObj = new Table();

        /*
         * Created the two threads by annonymous class.
         */
        Thread t1 = new Thread()
        {
            public void run()
            {
                tableObj.printTable(5);
            }
        };
        Thread t2 = new Thread()
        {
            public void run()
            {
                tableObj.printTable(100);
            }
        };

        t1.start();
        t2.start();
    }

}
Output
-------------------------------------
If printTable method has synchronized block,
then below will be the output:
-------------------------------------

Thread Name = Thread-0
5
10
15
20
25
Thread Name = Thread-1
100
200
300
400
500

-----------------------------------------
If printTable method does not have synchronized block,
then below will be the output:
-----------------------------------------
Thread Name = Thread-1
100
Thread Name = Thread-0
5
200
10
15
300
20
400
25
500
Click the below link to download the code:

CLICK HERE

No comments:

Post a Comment