草庐IT

c# - 并行图像处理伪影

我从网络摄像头捕捉图像,对它们进行大量处理,然后显示结果。为了保持高帧率,我希望并行运行不同帧的处理。所以,我有一个“Producer”,它捕获图像并将它们添加到“inQueue”;它还从“outQueue”中获取图像并显示它:publicclassProducer{Capturecapture;Queue>inQueue;Queue>outQueue;ObjectlockObject;Emgu.CV.UI.ImageBoxscreen;publicintframeCounter=0;publicProducer(Emgu.CV.UI.ImageBoxscreen,Capturecap

java - BlockingQueue.take 在什么情况下会抛出中断异常?

让我们假设我有一个线程消耗另一个线程生成的项目。它的run方法如下,inQueue是一个BlockingQueuebooleanshutdown=false;while(!shutdown){try{WorkItemw=inQueue.take();w.consume();}catch(InterruptedExceptione){shutdown=true;}}此外,不同的线程将通过中断正在运行的线程来发出没有​​更多工作项的信号。如果take()不需要阻塞来检索下一个工作项,它将抛出一个中断的异常。即,如果生产者发出信号表示它已完成填充工作队列,是否有可能不小心将某些项目留在inQ