扫码关注公众号

java语言考点之synchronized和volatile
04-21
547观看
01

Lock与synchronized的区别

1、ReentrantLock拥有Synchronized相同的并发性和内存语义,此外还多了锁投票,定时锁等候和中断锁等候

来自:并发和同步-锁的定义和分类
02

说一下volatile这个关键字的作用?

JMM为volatile定义了一些特殊访问规则,当变量被定义为volatile后具备两种特性:保证变量对所有线程可见当一条线程修改了变量值,

来自:并发和同步-synchronized、volatile(后续会删除)
03

synchronized这个关键字有什么作用?

每个Java对象都有一个关联的monitor,使用synchronized时JVM会根据使用环境找到对象的monitor,根据monitor

来自:并发和同步-synchronized、volatile(后续会删除)
04

synchronized 和 ReentrantLock 区别是什么?

synchronized是和if、else、for、while一样的关键字,ReentrantLock是类,这是二者的本质区别。既然ReentrantLock是类,那么它就提供了比synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量。ReentrantLock比synchronized的扩展性体现在几点上:ReentrantLock可以对获取锁的等待时间进行设置,这样就避免了死锁ReentrantLock可以获取各种锁的信息ReentrantLock可以灵活地实现多路通知另外,二者的锁机制其实也是不一样的:ReentrantLock底层调用的是Unsafe的park方法加锁,synchronized操作的应该是对象头中markword。

来自:并发和同步-synchronized、volatile(后续会删除)
课程
专栏
java语言-并发和同步-synchronized、volatile(后续会删除)
3专栏
1课程
4 试题