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 250Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/Synchronization_Method_V1_Demo_App.zip?attredirects=0&d=1
Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/Synchronization_Method_V1_Demo_App
Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/f6f636c9cec7185fdeb94163fb3919614c64786a/BasicJava/Synchronization_Method_V1_Demo_App/?at=master
See also:
No comments:
Post a Comment