我有一个主要的Mina处理程序线程正在处理,在该线程中我创建了另一个线程并将其设置为休眠指定的时间。现在我希望这个内部线程独立睡眠而不会阻塞Handler线程。 以下是示例代码。
public void messageReceived(IoSession session, Object message) throws Exception {
Integer tts = 5000;
Thread sleepThread = new Thread(obj);
sleepThread.sleep(tts);
}
目前它阻止了主要的Handler线程。
答案 0 :(得分:2)
Thread.sleep()
是一种静态方法,因此调用sleepThread.sleep(tts)
与Thread.sleep(tts)
相同。因此,您当前的线程正在睡觉。
通过调用Thread
对象上的方法,不能导致另一个线程进入休眠状态。在推送时,您可以在对象上设置一个标志,并且您的线程可以检查该标志是否存在并且相应地表现。
答案 1 :(得分:2)
试
final int tts = 5000;
Thread sleepThread = new Thread() {
public void run() {
try {
Thread.sleep(tts);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
};
sleepThread.start();