如何在两个无限循环线程之间共享单个列表?

Adh*_*aya 0 java concurrency multithreading

我有数据结构(即队列,堆栈或列表).存在无限循环(在线程1中)将对象插入到该数据结构中,并且存在另一个无限循环(在线程2中),其从该数据结构获取对象并对其进行一些处理.我不希望处理循环阻止插入循环.

如何在Java中正确执行此操作,在两个线程之间共享单个数据结构,同步和两个不同线程的并发读/写?我可以使用java并发API(java 7)中的数据结构吗?有什么建议可以解决这个问题吗?

Ros*_*rew 5

您正在寻找的是一种非阻塞数据结构,比如ConcurrentLinkedQueue.它将接受队列中的条目并向其发出请求而不会阻塞,使得它非常简单,无需实现任何花哨的东西.

进一步阅读(进入非阻塞背后的理论)