我有以下条件,请有人帮忙:
if(checkcondition){ --------(A)
...
some code
...
}
else{
sleep for 20 sec
go back to checkconfdition loop @ (A)
}
任何帮助都是事先确定的。
由于 Vaibhav的
答案 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。