synchronized和RetreenLock锁区别
1、synchronized是java关键字,RetreenLock是个java类
2、synchronized无法获取锁状态,Lock可以判断是否持有锁
3、synchronized会自动释放锁,Lock需要在finally中unlock()手动释放锁
4、使用synchronized,线程1获取锁,线程2只能等待;使用Lock,线程1获取锁,线程2会尝试获取锁,如果获取不到,不会一直等待,可以直接结束。
5、synchronized不可重入,不可中断,而Lock可重入,可中断
6、synchronized适合代码量少的同步,Lock适合大量代码同步
volitale和synchronized的区别
其他处理器的缓存由于遵守了缓存一致性原则,会把这个变量的值从主内存中加载到自己的
缓存中,因此在并发编程中保证了变量的可见性。
PS:多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看到修改后的值,这就是可见性。
volitale、synchronized、RetreenLock区别
原文:https://www.cnblogs.com/java-spring/p/10792097.html