我有数据结构(即队列、堆栈或列表)。有一个无限循环(在线程 1 中)将对象插入到该数据结构中,还有另一个无限循环(在线程 2 中)从该数据结构中获取对象并对其进行一些处理。我不希望处理循环阻塞插入循环。
如何在 Java 中正确执行此操作,以在两个线程之间共享单个数据结构,并从两个不同线程进行同步和并发读/写?我可以使用java并发API(java 7)中的任何数据结构吗?有什么建议可以解决这个问题吗?
最佳答案
您正在寻找的是 non-blocking data structure ,比如说ConcurrentLinkedQueue 。它将接受队列条目并向其发出请求,而不会阻塞,这使得它非常simple to use没有实现任何花哨的东西。
延伸阅读(深入非阻塞背后的理论)
关于java - 如何在两个无限循环线程之间共享单个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998244/