Thread
プログラムの実行時に動作を開始し、プログラムが閉じられると終了する を作成する必要があります。これThread
は、1分ごとに何かをチェックします。
Thread.sleep()
を使用するか、または何を使用して、このスケジューリングに最適な方法はTimer
何ですか?
Thread
プログラムの実行時に動作を開始し、プログラムが閉じられると終了する を作成する必要があります。これThread
は、1分ごとに何かをチェックします。
Thread.sleep()
を使用するか、または何を使用して、このスケジューリングに最適な方法はTimer
何ですか?
あなたはコードを提供していませんが、この種のものについての例がたくさんあります、ここに1つあります:
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() { System.out.println("beep"); }
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}
}
ScheduledExecutorService
を作成しますだからあなたは次のようなものを持っているでしょう
public class Application {
private final ScheduledExecutorService executor;
private final Runnable task;
public Application(ScheduledExecutorService executor, Runnable task) {
this.executor = executor;
this.task = task;
}
public void init() {
executor.scheduleAtFixedRate(task, 0, 60, TimeUnit.SECONDS);
}
public void shutdown() {
executor.shutdownNow();
}
}
そして、あなたは次のようなものであなたのアプリケーションを作成します
// ....
Application app = new Application(Executors.newSingleThreadScheduledExecutor(), task);
app.init();
// ....
// at end
app.shutdown();