synchronized锁的理解
来源:互联网 发布:ubuntu搜狗输入法安装 编辑:程序博客网 时间:2024/06/17 19:58
对于synchronized,我的理解是相当于为一个对象加上了锁,只有获取到该对象的钥匙即可执行相应的代码。(我理解钥匙相当于对象的句柄,一个对象只有一个句柄,只有拿到句柄打开锁才可以执行,执行完成后句柄位置还原,其他同步代码块抢到这个句柄继续执行,而其他的线程则一直尝试获取句柄,所以说无论是对象内部的同步代码块还是其他线程的同步代码块,若锁住的是同一对象,则为同步执行)
a.多个synchronized可以锁住同一个对象,但是只有一个获取到对象“”钥匙“”的可以得到执行。
b.synchronized 修饰方法,相当于
synchronized(this){
}
c.方法里只有同步代码块里的代码是同步执行的,其他代码仍是异步执行,只不过执行到同步代码块的位置阻塞住了,所以需要注意锁的位置,不适当的话还是会产生脏读
细化的三个结论 :
1.当多个线程同时执行synchronized(x){}同步代码块是呈同步效果
注 : x为同一个对象
2.当其他线程执行x对象中的synchronized同步方法时呈同步效果
3.当其他线程执行x对象中的synchronized(x){}同步代码块时也呈现同步效果,但是如果其他线程调用不加synchronized关键字的方法时,还是异步调用
阅读全文
0 0
- synchronized锁的理解
- java synchronized锁的理解
- 关于synchronized,对象锁的理解
- Synchronized关键字中锁的理解
- 对synchronized 的理解
- Synchronized 关键字的理解
- synchronized 的理解
- 对 synchronized 的理解
- synchronized的理解
- 对synchronized的理解
- synchronized的理解
- Java synchronized的理解
- synchronized的理解
- synchronized关键字的理解
- synchronized 关键字的理解
- synchronized的理解
- 理解synchronized(Object)锁
- 理解synchronized对象锁
- jquery表单验证学习心得
- 【Robot Framework】之 知识补充
- java--String转化各种进制
- 数据解析
- EF操作-删除记录
- synchronized锁的理解
- JVM调优总结(6):新一代的垃圾回收算法
- Mybatis中如何查询时间段内的数据
- ipython + notebook
- Ribbon的使用
- 廖雪峰的Python—sorted
- 面试有感
- centos6.8下无法使用lsof命令"-bash: lsof: command not found"
- codeforces 787A the monster(扩展欧几里得做法+暴力做法)