[英]Thread.sleep in loop not working, any alternatives?
不允许在循环中告诉thread.sleep(),但是我在调用每秒有限制的套接字时需要使用它。
还有其他方法吗?
for (int i=0; i < 100; i++) {
try {
Thread.sleep(300);
} catch (InterruptedException ex) {
Logger.getLogger(bulkWhoIsCommand.class.getName()).log(
Level.SEVERE, null, ex);
}
}
您可以使用BlockingQueue
的poll
方法:
private final BlockingQueue<Void> pause = new ArrayBlockingQueue<Void>(1);
public void test() throws InterruptedException {
pause.poll(100 * 300, TimeUnit.MILLISECONDS);
}
这种技术的奇迹在于,您可以决定在队列中戳一些东西以中止暂停(如果您决定这样做的话)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.