問題タブ [scheduledexecutorservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - キャンセル時に(固定レート)ScheduledFuture が完了するのを待つ方法
Runnable
固定レートでスケジュールされたタスクをキャンセルScheduledExecutorService.scheduleAtFixedRate
し、キャンセルが呼び出されたときにタスクが実行されている場合に完了を待つ組み込みの方法はありますか?.
次の例を検討してください。
このプログラムの出力は次のとおりです。
共有揮発性フラグを設定するのが最も簡単なオプションのようですが、可能であれば避けたいと思います。
java.util.concurrent フレームワークには、この機能が組み込まれていますか?
java - Java ScheduledExecutorService 標準プラクティス
J2EEアプリケーションでScheduledExecutorServiceを使用して、構成ファイルから取得したx秒ごとにタスクをスケジュールしています(データベースからデータを取得して外部サーバーに送信します)。私のコードは次のとおりです。
私の質問は、私が書くべき余分なコードはありますか? スレッドが完了していることを確認するためにwhileループを記述してから、それを処理するservice.shutdown()
必要がありScheduledExecutorService
ますか?
java - Executor 内からタスクをキャンセルするか、タイムアウト後に外部からキャンセルする
さて、私は時間をかけて周りを見回しましたが、明確な解決策を見つけることができませんでした. 以前に別の質問を投稿しましたが、それは少し異なる問題です。
問題: 定期的に発生する条件をポーリングしたい。その条件がまだ false の場合は、再度スケジュールを変更します。true の場合、スケジューリングを停止します。しかし、私はまた、決定的な時間だけ待ちたいと思っています。これが私が書いたものです
これは、条件が満たされるまで自分自身を再スケジュールし続けます。なぜ機能しないのかについての提案はありますか? 5 秒だけ待ってからタスクの実行を停止するにはどうすればよいですか?
jsf - HTTP リクエストなしで、スケジュールされたエグゼキュータでリクエスト スコープ Bean をインスタンス化する
JSF 2.2 webapp には、タスクを実行するためにリクエスト スコープ Bean をインスタンス化する必要があるコードを定期的に実行する、スケジュールされたスレッド エグゼキュータ サービスがあります。クライアントからの http リクエストなしで、アプリケーション スコープ Bean 内からリクエスト スコープ Bean をインスタンス化するにはどうすればよいですか。
試してみると:
リクエストスコープのBeanはどこNamesDirectory
ですか、私は得るNullPointerException
android - ScheduledExecutorService は、Service 内で 1 回だけ実行されます
ScheduledExecutorService
バックグラウンドで画像を取得するサービス内で実行しています。ScheduledExecutorService
一度だけ実行するとは、関数で渡された間隔の後に写真を 1 枚だけ撮影することを意味します。エラーはまったく表示されません。以下は私のコードですService
エラーが発生しないため、Logcat はありません。写真を撮った後もサービスが実行されています。私が間違っていることは何ですか?
java - 異なるコンピューターでの java.util.concurrent.ScheduledExecutorService のパフォーマンス
私は2つのJavaプログラムを持っています。それぞれにメモリ領域があり、プログラムは互いのメモリ領域にメッセージを渡します。Java プログラムは、ScheduledExecutorService を使用して特定の時間 (5 ミリ秒) でメモリ領域をチェックします。次に、何らかの変換を行い、メッセージを画面に出力します。2 つのプログラムが正常に実行され、メッセージが画面に出力されます (すべての JNI 関連のものを実装し、プログラムが正常に実行されました)。問題は、これらのプログラムを自分のコンピューター (Windows 8、64 ビット、8GB RAM、2.67 Ghz i5 プロセッサー) で起動すると、非常に高速に実行されることです。ただし、これらのまったく同じプログラムを、共有メモリ関連の作業を処理するまったく同じネイティブ C++ ライブラリで実行すると、別のコンピューターで実行速度が低下します。. さらに興味深いのは、32 GB RAM、i7 プロセッサを搭載した優れたコンピューターと、6 GB RAM と 64 ビット コア デュオ CPU を搭載した劣悪なコンピューターの両方でそれらを実行しようとしたにもかかわらず、動作が遅くなったことです。したがって、私のコンピューターよりも機能が優れていても劣っていても、プログラムの速度には問題がありませんでした。他のコンピューターでは実行速度が遅いことがわかります。
どんな助けでも大歓迎です。ありがとう。
java - scheduleAtFixedRate と scheduleWithFixedDelay の比較
とScheduledExecutorServicescheduleAtFixedRate
のscheduleWithFixedDelay
メソッドの主な違いは何ですか?
それらはまったく同じ時間に印刷され、まったく同じ間隔で実行されているようです。