Thread synchronization

TestSynchronized.java

// Program to Test Synchronized class MyClass { void myMethod() { System.out.println("Callin method from MyClass "); } } class CommonClass { synchronized public void print(String msg) { System.out.println("Hi"); try { Thread.sleep(1000); } catch(Exception e) { } System.out.println(msg); } } class Syn1 extends Thread { CommonClass cc = null; public void run() { cc.print("From Syn1"); } } class Syn2 extends Thread { CommonClass cc2 = null; public void run() { cc2.print("From Syn2"); } } class TestSynchronized { public static void main(String ar[]) { //creating the object of Synchronized method`s class CommonClass c = new CommonClass(); // Creating the object of extended Thread class Syn1 s1 = new Syn1(); Syn2 s2 = new Syn2(); // assigning the CommonClass type reference to Syn1 and Syn3 Class s1.cc = c; s2.cc2 = c; //starting the thread s1.start(); s2.start(); MyClass mc = new MyClass(); mc.myMethod(); System.out.println("Main Finished"); } }

TestSynchronized1.java

// Program to Test Synchronized class CommonClass { synchronized public void print(String msg) { System.out.println("Hi"); try { Thread.sleep(1000); } catch(Exception e) { } System.out.println(msg); } } class Syn1 extends Thread { CommonClass cc = null; public void run() { cc.print("From Syn1"); } } class Syn2 extends Thread { CommonClass cc2 = null; public void run() { cc2.print("From Syn2"); } } class TestSynchronized1 { public static void main(String ar[]) { //creating the object of Synchronized method`s class CommonClass c = new CommonClass(); // Creating the object of extended Thread class Syn1 s1 = new Syn1(); Syn2 s2 = new Syn2(); // assigning the CommonClass type reference to Syn1 and Syn3 Class s1.cc = c; s2.cc2 = c; //starting the thread s1.start(); s2.start(); // creating another object Syn1 ss1 = new Syn1(); Syn2 ss2 = new Syn2(); ss1.cc = c; ss2.cc2 = c; ss1.start(); ss2.start(); System.out.println("Main Finished"); } }

No comments:

Popular Posts