This question already has answers here:
Handling InterruptedException in Java
                                
                                    (7个答案)
                                
                        
                2年前关闭。
            
        

我有网络要求,谁迫使我将空闲请求发送2秒钟

requester = new Thread(){
        @Override
        public void run(){
                  buildRequest();
                  Thread.sleep(requestDelay);
                } catch( InterruptedException e){
                   // keep idle for the remaining time still
                   // interrupted at 1s need to sleep 1 second more
                   e.printStackTrace();
                }
                sendRequest();
            }
        }


是否可以通过循环消耗CPU来休眠剩余时间?如果是,最好的方法是什么?

最佳答案

如果我正确理解,您希望以某种方式处理InterruptedException,以确保在执行sendRequest之前没有延迟。好吧,由于InterruptedException发生在线程调用interrupt()时,该catch块不会执行,因此您不必担心。

您的方法不太正确,被动方法会更好。即使是基本的Timer也更好。

10-06 12:24