没有合适的资源?快使用搜索试试~ 我知道了~
synchronized ReentrantLock volatile Atomic 原理分析.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2022-06-26
17:45:42
上传
评论
收藏 78KB DOCX 举报
温馨提示
试读
10页
原理 synchronized关键字是通过字节码指令来实现的 synchronized关键字编译后会在同步块前后形成monitorenter和monitorexit两个字节码指令 执行monitorenter指令时需要先获得对象的锁(每个对象有一个监视器锁monitor),如果这个对象没被锁或者当前线程已经获得此锁(也就是重入锁),那么锁的计数器+1。如果获取失败,那么当前线程阻塞,直到锁被对另一个线程释放 执行monitorexit指令时,计数器减一,当为0的时候锁释放
资源推荐
资源详情
资源评论
synchronized ReentrantLock volatile
Atomic 原理分析
原理
synchronized 关键字是通过字节码指令来实现的
synchronized 关键字编译后会在同步块前后形成 monitorenter 和 monitorexit 两个
字节码指令
执 行 monitorenter 指 令 时 需 要 先 获 得 对 象 的 锁 ( 每 个 对 象 有 一 个 监 视 器 锁
monitor),如果这个对象没被锁或者当前线程已经获得此锁(也就是重入锁),
那么锁的计数器+1。如果获取失败,那么当前线程阻塞,直到锁被对另一个线程
释放
执行 monitorexit 指令时,计数器减一,当为 0 的时候锁释放
class Test
{
public int i=1;
public void test()
{
synchronized (this)
{
i++;
}
}
}
反编译后结果
资源评论
小兔子平安
- 粉丝: 209
- 资源: 1940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功