notifyAll()的通知对象包括wait set中的和等待synchronized块的的么?

来源:4-4 Java线程交互之深入剖析互斥与同步

留一阵风

2015-01-08 00:06

老师,我有点疑惑:

    lockObj竞争者有两种可能是么?

        ①有之前很多不满足条件的在wait set中的

        ②等待进入synchronized块的

    当lockObj执行notifyAll()的时候,我觉得①②两种都用可能的,但是呢,我测试发现只有第②中情况,为什么呢?

写回答 关注

2回答

  • Arthur
    2015-01-08 12:52:45

    在wait set中的对象并不会竞争lockObj。只有当其他线程调用notifyAll后他们才有机会竞争lockObj。

  • MoreClass
    2015-05-01 14:32:58

    因为1中的那些线程竞争之后还是没有满足条件又被放入wait set中了

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186088 学习 · 464 问题

查看课程

相似问题