Questions tagged «interrupt»




8
如何中断ServerSocket accept()方法?
在主线程中,有一个while(listening)循环,该循环调用accept()ServerSocket对象,然后启动新的客户端线程,并在接受新客户端时将其添加到Collection中。 我也有一个Admin线程,我想使用它发出诸如“ exit”之类的命令,这将导致所有客户端线程被关闭,关闭自身并通过侦听false关闭主线程。 但是,循环中的accept()调用会while(listening)阻塞,并且似乎没有任何方法可以中断它,因此,无法再次检查while条件,并且程序无法退出! 有一个更好的方法吗?还是以某种方式来中断阻塞方法?

6
如何中断在take()上阻塞的BlockingQueue?
我有一个类,该类从a获取对象BlockingQueue并通过take()连续循环调用来处理它们。在某些时候,我知道不会再有其他对象添加到队列中。如何中断该take()方法以使其停止阻塞? 这是处理对象的类: public class MyObjHandler implements Runnable { private final BlockingQueue<MyObj> queue; public class MyObjHandler(BlockingQueue queue) { this.queue = queue; } public void run() { try { while (true) { MyObj obj = queue.take(); // process obj here // ... } } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.