这两天分析了一下SynchronousQueue类的实现,代码比较复杂,看来两三天才大概理解里面的逻辑。其中有个名词“dual queue”感觉网上的文档翻译的有问题,不好理解。
我解释一下:
dual queue:二元队列,队列中只存储相同类型的元素,要么都是“data”类型, 要么都是“requests”的。
代码中有解释:
A dual queue is one that at any given time either holds “data” – items provided by put operations, or “requests” – slots representing take operations, or is empty.
网上便于理解的好文章:
1 java并发之SynchronousQueue实现原理