目的:しばらくの間、特定のコードを実行します。Thread.sleep()VS Executor.scheduleWithFixedDelay()
質問:
while(true) {
execute();
Thread.sleep(10 * 1000);
}
と
executor.scheduleWithFixedDelay(runnableWithoutSleep, 0, 10, TimeUnit.SECONDS);
:パフォーマンスの面では、大きな違いはありますか?
もちろん、後者のオプションはもっとコーシャーです。それでも、私は「数日かけてThread.sleep()にさよならを言うためにレガシーコードをリファクタリングする」という冒険に着手すべきかどうかを知りたい。
更新: このコードは、スーパー/メガ/ハイパーロードの高い環境で動作します。
から取られています。 –
@Quoi:スケジュールされたエグゼキュータが多くのスケジュールされたタスクを実行し、タスクの数より少ないスレッドでそれらを実行できるので、それらは実際には同じではありません。スリープを使用している場合は、スケジュールするすべてのタスクのスレッドが必要です。 –
*スリープ状態の操作の実行について質問しているのはなぜですか? – Dan