繁体   English   中英

Thread.sleep in in loop无法正常工作,还有其他选择吗?

[英]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);
    }
}

您可以使用BlockingQueuepoll方法:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM