同步块与同步方法区别示例
代码示例:
public class SyncTest{ static Object obj = new Object(); public static void main(String[] args) { T1 t1 = new T1(); T2 t2 = new T2(); t1.start(); t2.start(); } public static void test1() { synchronized(obj) { try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.err.println("===="); System.err.println("test1"); } } public static synchronized void test2() { System.err.println("****"); System.err.println("test2"); }}class T1 extends Thread{ public void run() { SyncTest.test1(); }}class T2 extends Thread{ public void run() { SyncTest.test2(); }}public static synchronized void test1() { try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.err.println("===="); System.err.println("test1"); }