84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
java中为什么不像上图那样直接使用,而是用一个局部变量指向它,然后再去使用?
我看到JDK方法中很多地方都是这样用,请问这样用和直接使用用什么区别吗?
还有什么时候需要用 static 修饰Lock,什么时候不需要?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
Lock相比synchronized更加符合面向对象的理念,
Lock
synchronized
为了效率,这跟JMM规范有关,特别是volatile修饰的变量,用一个局部变量去接受,然后使用在效率上会有提升,不过你大可不必在乎这点效率,那些都是写JDK的牛人在乎的。
JMM
volatile
JDK
这和你的业务相关啊,锁的粒度决定你加不加static,同一把锁才会阻塞,不同锁不阻塞。使用了static后锁的粒度会很大,类级别的。不加的话对象级别的。
static
Lock
相比synchronized
更加符合面向对象的理念,为了效率,这跟
JMM
规范有关,特别是volatile
修饰的变量,用一个局部变量去接受,然后使用在效率上会有提升,不过你大可不必在乎这点效率,那些都是写JDK
的牛人在乎的。这和你的业务相关啊,锁的粒度决定你加不加
static
,同一把锁才会阻塞,不同锁不阻塞。使用了static
后锁的粒度会很大,类级别的。不加的话对象级别的。