ホームページ >Java >&#&チュートリアル >Java で正確な遅延を実装するにはどうすればよいですか?

Java で正確な遅延を実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 01:21:12424ブラウズ

How to Implement Precise Delays in Java?

Java 遅延の実装

Java では、指定された期間の遅延を作成することがさまざまなシナリオで不可欠です。この記事では、遅延とその影響を実装する手法について説明します。

提供されたコード スニペットは、while ループを利用して配列を反復処理し、各アクション間に遅延が意図されている要素を選択および選択解除します。これを実現するために、Java プラットフォームはいくつかのオプションを提供します。

java.util.concurrent.TimeUnit Sleep

TimeUnit クラスは、SECONDS.sleep(1) などのメソッドを提供して、特定の期間実行を一時停止します。ただし、各実行にはわずかな時間の変動があるため、このアプローチではドリフトが発生します。

ScheduledExecutorService

より柔軟で正確な制御を行うには、ScheduledExecutorService の方が適しています。事前に定義された間隔でタスクを定期的に実行するための、scheduleAtFixedRate メソッドとscheduleWithFixedDelay メソッドをサポートしています。

実装例

ScheduledExecutorService (Java 8) を使用して 1 秒ごとにタスクを実行するには、次のようにします。

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);

Java 7実装

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        myTask();
    }
}, 0, 1, TimeUnit.SECONDS);

このメソッドにより、タスクが正確な間隔で実行され、ドリフトの問題が回避されます。

以上がJava で正確な遅延を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。