如果一堆线程中的某几个线程是因为 synchronized 内置锁导致的死锁,这几个死锁的线程会被挂起,让出CPU执行权,并进行上下文切换。但是另一个问题就是,这几个死锁的线程是否还会拿到CPU执行权呢?因为内置锁阻塞的线程会进入阻塞态,而不是就绪态,可是如果想要拿到CPU执行权需要进入就绪态才行,被内置锁阻塞的死锁线程是否有机会进入就绪态? 目前从下面的死锁的demo中来看,线程始终是处于BLOCKED状态,那么是否意味着不会进入就绪状态?如果不进入就绪状态就无法拿到CPU执行权,不占用计算机的系统资源,既然如此,为何有些说法是死锁会导致系统越来越卡顿?不过反过来思考,如果没有死锁的发生,那些被内置锁所阻塞的线程如何切换到就绪态拿到CPU执行权的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。