shy*_*yam 2 java multithreading
我用Java编写了一个代码,如下所示:
....
while (conditionX) {
//fetch m
....
t = new Thread(new SomeRunnable(m));
t.start();
Thread.sleep(500);
}
....
class SomeRunnable implements Runnable {
String msisdn;
public SomeRunnable (String m) {
msisdn = m;
}
@Override
public void run() {
do {
//Statement block S uses msisdn, sets condition Y
Thread.sleep(30000);
} while (conditionY);
}
}
Run Code Online (Sandbox Code Playgroud)
我Thread.sleep()对代码中使用的数字不满意.为了避免这种情况,我尝试了ScheduledExecutor等,但无法找到一种方法来做我想要的.在新线程启动之前
我需要半秒的延迟,并且在线程中,在再次尝试语句块S之前必须有30秒的延迟.
请帮助我使用适当的类来更好地编写代码.
我只提供了我的代码工作流程的概念,如果我要提供更多信息,请告诉我.
谢谢
您可以实现TimerTask并覆盖run().然后,您可以定期安排任务:
Timer myTimer = new Timer();
timer.scheduleAtFixedRate(new MyTimerTask(), 500L, 30000L);
Run Code Online (Sandbox Code Playgroud)
如果要取消任务,可以通过调用来完成 cancel()
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |