阻塞队列源码疑惑
来源:9-23 代码演示、源码分析

程序员Fisher
2022-06-15
老师,能帮忙分析一下这块代码,是怎么执行的吗,put方法中的await会阻塞当前线程,此时使用的notFull.await,然后唤醒别的线程,但是我看take方法用的notEmpty.await,他们是如何协作的呢?
写回答
1回答
-
是这样的,notFull和notEmpty是两个不同的集合,里面放着不同的线程,我理解你的疑问是,都是await,那么是在哪里唤醒的呢?其实在你截图的代码里,有enqueue方法,会唤醒notEmpty,而在取出元素的时候,会唤醒notFull,所以是这样协作的。
012022-06-15
相似问题