Java线程等待/睡眠

时间:2011-02-23 09:56:15

标签: java multithreading

我有以下条件,请有人帮忙:

if(checkcondition){ --------(A)
...
some code
...
}
else{
sleep for 20 sec
go back to checkconfdition loop @ (A)
}

任何帮助都是事先确定的。

由于 Vaibhav的

2 个答案:

答案 0 :(得分:3)

while(true){
    if (checkcondition1) {
        //some code
    } else {
        try {
           Thread.sleep(20*1000);
        } catch (Exception ex) {
        //some action
    }
}

答案 1 :(得分:3)

睡觉不是让线程醒来做事的最好方法。您应该使用call wait来使线程等待,然后设置checkcondition的另一个线程也会调用notify来唤醒第一个线程。

这样做的好处是线程会立即唤醒,而不必等待20秒才能意识到还有工作要做。

搜索Java wait notify,您会找到很多示例。相关Stack Overflow问题:A simple scenario using wait() and notify() in java