课程
/后端开发
/Java
/深入浅出Java多线程
有一个问题想请教下大家,如果有3个线程在竞争,线程1是不满足条件的,线程23满足,当线程1争夺到锁,但不满足条件进去wait set,线程23继续争夺,当线程2争夺到锁的时候,线程3在哪呢,会自动进入wait set吗?
2016-05-02
源自:深入浅出Java多线程 4-4
正在回答
线程3在没有争夺到锁的情况下肯定不会进入Wait Set等待了。这和你刚开始说的当线程1争夺到锁,而2、3没有争夺到时情况应该是一样的,CPU应该是还没有机会执行这条线程。一家之言。
weibo_热心市民吴子航_0 提问者
我的理解是线程3,应该是执行到锁前,等待线程2执行完毕,与线程1、2一同竞争锁;
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
2 回答在wait set中不满足条件的线程,被唤醒后是不是还是不满足条件?
1 回答如果共享资源一直不满足线程的要求,线程不就会一直傻傻的等待
8 回答lockObj.notifyAll(); 说是唤醒所有在lockObj对象上等待的线程,energyBoxes[from] < amount那么肯定会出现有些线程这个条件不满足的啊,咋能唤醒全部线程呢?
2 回答关于线程休眠的问题
2 回答如果用return,那么条件不满足时是怎么竞争资源的?
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号