从代码来看,在LinkedList
和ArayBlockingQueue
情况下,处理成员所有权的方式似乎有所不同。
(其他人也可能是相同的-但到目前为止,我只专注于以上内容。)
在ArrayBlockingQueue
的情况下,所有权似乎是从输入线程转移到提取线程的-在LinkedList
中,放置在对象中的线程会维护对它的引用,即使在被对象检索到之后也是如此。单独的线程(可能)。
我的理解正确吗?
为什么我们在行为上有这种差异?
(在这里,我使用实例和线程作为同义词,因为实例将在特定线程中运行。)
最佳答案
LinkedList
完全不提供任何线程安全性或同步性。您有责任自己做。concurrent
软件包集合确实提供了集合本身的线程安全性,但是您仍然负责管理可能对集合中的对象进行的任何修改。
Java中没有对象“所有权”的概念。