我刚刚通读了 java.util.concurrent包的 API 文档。
我的印象是“并发”和“线程安全”在那里被同义使用。
例子:
ConcurrentLinkedDeque -基于链接节点的无限并发双端队列。ConcurrentLinkedQueue -基于链接节点的无界线程安全队列。
在并发包的范围内,我可以假设线程安全和并发这两个词的含义相同吗?
我刚刚通读了 java.util.concurrent包的 API 文档。
我的印象是“并发”和“线程安全”在那里被同义使用。
例子:
ConcurrentLinkedDeque -基于链接节点的无限并发双端队列。ConcurrentLinkedQueue -基于链接节点的无界线程安全队列。
在并发包的范围内,我可以假设线程安全和并发这两个词的含义相同吗?
是的... concurrent 包中的所有内容都可以从不同的线程同时使用;例如线程安全。
特别是在您链接到的页面上,在“并发集合”部分下:
并发集合是线程安全的,但不受单个排除锁的控制。
除此之外......包的全部目的java.util.concurrent.*
是为并发(多线程)编程提供工具。
我认为在这种情况下,它意味着“一个线程安全的集合,它是非阻塞的(与其他较旧的集合不同,例如使用同步的 Stack),更适合并发访问”。
我查看了ConcurrentLinkedQueue
文档,它说:
[...] 与其他并发集合一样 [...]
它还说:
[...] 基于链接节点的无界线程安全队列。
因为它说 CLQ 是线程安全的,并将其与“其他并发集合”进行比较,所以我认为我们可以假设它们实际上是同义词使用的。
找出答案的唯一真正方法是检查 Java 发行版的源代码。