A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胥文 中级黑马   /  2013-2-24 15:46  /  1171 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已知一个同步代码块,里面嵌套一个同步代码块,外面代码块锁,这里称为“锁外”和里面的代码块的锁称为“锁内”
当一个线程先拿到“锁外”,然后再去拿“锁内”(问此时该线程会释放“锁外”吗,还是等到线程执行完代码块,然后一起释放“锁外”和“锁内”?
如果是这样的话为什么不将两个代码块改写成一个代码块,还要写成代码块嵌套代码块;或者两个代码块写成一个同样的锁,这样还安全一点吗?)

1 个回复

倒序浏览
锁是作用于整个同步代码块的 锁外 遇到 锁内 当然不会放锁
他会先执行完 锁内里面的代码 释放锁内 再释放锁外

你这个情况不是死锁么?
关于死锁是为了让我们避免他 而不是为了写死锁而去学死锁
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马