为什么没有java.util.Timer对象的isCancelled
方法?
如果Timer没有被取消,我想安排一个任务,并且如果它被取消,则直接运行它(在同一个线程上).
IllegalStateException
如果Timer已被取消,是否可以捕获可能出现的唯一选项?(抓到一个感觉不对IllegalStateException
).
我已经阅读了一些线程,说在循环中调用Thread.sleep()是有问题的,并且是一个严重的性能问题.但在某些情况下,这似乎是最自然的事情.
例如,如果我希望我的应用程序每3分钟执行一次(假设它是自动保存)
public void startAutosaveLoop(){
stop = false;
new Thread(new Runnable() {
@Override
public void run() {
while (!stop){
Thread.sleep(T*1000);
if (!stop){
// do something
}
}
}
}).start();
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?这种情况有问题吗?
我已经开发了Java代码,用于生成0到99范围内的10个随机数.问题是我需要每2分钟生成一个随机数.我是这个领域的新手,需要你的意见.