【发布时间】:2013-08-27 20:55:20
【问题描述】:
我无法理解 Synchronous Queue 的工作原理。
我理解这个想法是任务的移交是直接给线程的,但构造函数没有限制,例如像其他 API 那样的最大线程数。
因此,当 put 或 offer 完成时,它本质上是否传递给另一个线程?
所以,如果我这样做,例如100 put 会被传递给 100 个线程吗?
我试图阅读源代码,但无法弄清楚发生了什么。它似乎创建了一个节点的链接列表,其中每个节点都封装了一个线程,但是这个列表是如何维护的,例如扩展/收缩等以及踏板如何运行任务对我来说并不清楚。
那么这个列表会随着我们提供任务而扩展吗?因此消费者线程(服务员)不断增加?
这些是否被重复使用?或者只是执行某些操作然后停止?
【问题讨论】:
标签: java multithreading concurrency queue java.util.concurrent