JAVA Synchronized 关键字锁实例和锁CLASS对象的区别

来源:互联网 发布:特殊字符软件 编辑:程序博客网 时间:2024/05/20 07:16
package Thread.synchronizedTest;public class SynchronizedTest {  /**  * 锁住class对象  */ public static   void synchronizedStatic(){  synchronized(SynchronizedTest.class){   System.out.println("synchronizedStatic");   try {    Thread.sleep(10000);   } catch (InterruptedException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }     }    }  /**  * 锁住方法,lock标记打在该实力上  */ public synchronized void synchronizedMethod(){  System.out.println("synchronizedMethod");  try {   Thread.sleep(8000);  } catch (InterruptedException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }     }  /**  * 不会有影响,正常调用  */ public  void synchronizedMethod2WithNosynchronized(){  System.out.println("synchronizedMethod2WithNosynchronized"); } /**  * synchronizedMethod 已经锁住实例,  * 再加锁不成功  */ public  void synchronizedMethod2(){  synchronized( this ){   System.out.println("synchronizedMethod2");   try {   Thread.sleep(15000);  } catch (InterruptedException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }    } }  /**  * synchronizedMethod 已经锁住实例,  * 再加锁不成功  */  public  void synchronizedMethod3(){  synchronized( this ){   System.out.println("synchronizedMethod3"); }    } /**  * @param args  * @throws InterruptedException   */ public static void main(String[] args) throws InterruptedException {  // TODO Auto-generated method stub  final SynchronizedTest t= new SynchronizedTest();  Thread th = new Thread( new Runnable(){   @Override   public void run() {    // TODO Auto-generated method stub    t.synchronizedStatic();   }     } );  th.start();      th = new Thread( new Runnable(){   @Override   public void run() {    // TODO Auto-generated method stub    t.synchronizedMethod();   }        } );  th.start();       th = new Thread( new Runnable(){   @Override   public void run() {    // TODO Auto-generated method stub    t.synchronizedMethod2();   }        } );  th.start();  t.synchronizedMethod2WithNosynchronized();    t.synchronizedMethod3(); }}

 

原创粉丝点击