java synchronized 关键字(2)对象监视器为class
2016-11-28 21:42
435 查看
在java多线程中 synchronized 是非常重要的,也是经常用到的
对于synchronized关键字要注意两点synchronized对象监视器为Object的时候
synchronized对象监视器为Class的时候
对象监视器为CLASS
例如下面代码public class A { static synchronized public void MethodA(){ System.out.println("this is static MethodA"); } static synchronized public void MethodB(){ System.out.println("this is static MethodB"); } static public void MethodC(){ System.out.println("this is static MethodC"); } }
当两个线程分别调用 A.MethodA() 和 A.MethodB() 的时候 这两个方法是不能同时执行的,因为synchronized 锁的是A 这个class,A 里面被synchronized 关键字标记的方法只能串行,也就是同一时间只有一个synchronized 标记的方法能运行。A.MethodA() 运行 A.MethodB()就要等待,
但A.MethodC()可以运行,因为MethodC没有被标记,属于非线程安全。不受关键字影响。
相关文章推荐
- java synchronized 关键字(3)对象监视器Object与class同时使用
- JAVA Synchronized 关键字锁实例和锁CLASS对象的区别
- JAVA Synchronized 关键字锁实例和锁CLASS对象的区别
- java synchronized 关键字(1)对象监视器为Object
- Java的类对象锁 synchronized(xxx.class)
- java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- java synchronized关键字this与this.Class的区别
- java中的Class对象、new关键字
- java synchronized关键字的用法以及锁的等级:对象锁、类锁
- java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- JAVA synchronized关键字及对象锁通俗理解
- java synchronized关键字,类锁,对象锁详解
- Java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- Java多线程的例子及synchronized关键字锁定对象的用法
- java线程同步——条件对象+synchronized 关键字
- java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁
- 对象监视器,线程关键字synchronized
- java 使用synchronized关键字锁定的对象