3

我刚刚通读了 java.util.concurrent包的 API 文档。

我的印象是“并发”和“线程安全”在那里被同义使用。

例子:

ConcurrentLinkedDeque -基于链接节点的无限并发双端队列。ConcurrentLinkedQueue -基于链接节点的无界线程安全队列。

在并发包的范围内,我可以假设线程安全并发这两个词的含义相同吗?

4

3 回答 3

3

是的... concurrent 包中的所有内容都可以从不同的线程同时使用;例如线程安全。

特别是在您链接到的页面上,在“并发集合”部分下:

并发集合是线程安全的,但不受单个排除锁的控制。

除此之外......包的全部目的java.util.concurrent.*是为并发(多线程)编程提供工具。

请参阅:Oracle 的 Java 教程;并发

于 2013-06-29T02:11:56.043 回答
1

我认为在这种情况下,它意味着“一个线程安全的集合,它是非阻塞的(与其他较旧的集合不同,例如使用同步的 Stack),更适合并发访问”。

于 2013-06-29T02:21:33.800 回答
0

我查看了ConcurrentLinkedQueue文档,它说:

[...] 与其他并发集合一样 [...]

它还说:

[...] 基于链接节点的无界线程安全队列。

因为它说 CLQ 是线程安全的,并将其与“其他并发集合”进行比较,所以我认为我们可以假设它们实际上是同义词使用的。

找出答案的唯一真正方法是检查 Java 发行版的源代码。

于 2013-06-29T02:14:35.487 回答