从队列中删除时,我得到的是NoSuchElementException
有时是。我是否需要使用锁/等待/其他延迟机制?当从队列中抽取队列时发生Java'NoSuchElementException'
我已经提供了代码的粗略翻译。
线程与队列
public void run(){
while(true){
if(queue.size()>=2){
a = queue.remove();
b = queue.remove();
//DoesSomeWorkHereWhichWorks
//Writes to MVAR's
}
}
线程其写入队列
public void run(){
while(x>0){
//Does something which works
QueueThread.add(this);
//Take from mvars
}
}
大加赞赏,请宽容我,我是新来的编程:)
如果您有多个线程正在执行此操作,则无法保证在调用queue.remove()时queue.size()> 0。 –
有五个'作家'线程和一个'带队列的线程'。所以不应该这样,因为队列线程每次只能运行一次。 –
这将是制作SSCCE的好时机。 http://sscce.org/ –