問題タブ [executor]
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.
grails - Grails Executorプラグインでエラーが発生し、Bean「persistenceInterceptor」が見つかりません
「executor」プラグインをGrailsアプリにインストールして、単純な非同期処理を実行しました。私はHibernateや派手な永続性を使用していません。https://github.com/basejump/grails-executorにあるプラグインのドキュメントに基づいて、セットアップは非常に簡単です。以下を追加するだけで、準備が整いresources.groovy
ます...
コードで非同期構造を使用しようとはしていませんが、grailsアプリを起動すると、次のエラーが表示されます...
persistenceInterceptor
で名前が付けられたBeanを配線していないので、エラーは理にかなっていますresources.groovy
が、プラグインのドキュメントによると、配線する必要はありません。PersistenceContextInterceptorインターフェースを実装するGroovyクラスを作成し、それを「persistenceInterceptor」Beanとして接続する必要がありますか?ドキュメントのセットアップセクションには、これについての言及はありません。
java - xml構成のないSpring @Async
25.5.3 要素
@Scheduled アノテーションと @Async アノテーションの両方を有効にするには、タスク名前空間の「アノテーション駆動型」要素を構成に含めるだけです。
@Async アノテーションが付けられたメソッドに対応するタスクを処理するためのエグゼキューター リファレンスが提供され、@Scheduled アノテーションが付けられたメソッドを管理するためのスケジューラー リファレンスが提供されていることに注意してください。
XMLなしでこれを行う方法はありますか?
java - コアスレッドを存続させ、ThreadPoolExecutorで余分なスレッドを消滅させる方法は?keepAliveTimeが期待どおりに機能しない
ThreadPoolExecutorを使用してスレッドプールを管理しています。私たちが欲しいのは:
- プールのスレッド数がcorePoolSize未満の場合は、新しいタスクのために新しいスレッドを開始します。
- プールにcorePoolSizeを超えるスレッドがあり、すべてがビジーである場合は、maxPoolSizeに達するまで、新しいタスクのために新しいスレッドを開始します。その場合、タスクを拒否します。
- アイドル状態のスレッドのcorePoolSize数を維持し、keepAliveTimeを超えてアイドル状態になっていると、余分なスレッドは停止します。
Java6ドキュメントによると、keepAliveTimeは上記のように機能するはずです。しかし、私のテストコードでは、一貫して機能しません。
keepAliveTimeを0に設定すると、正常に機能し、コアスレッドを常に存続させ、終了時に余分なスレッドを終了します。
ただし、以下に示すように、keepAliveTimeを正の値に設定すると、コアスレッドであるかどうかに関係なく、すべてのアイドル状態のスレッドが終了するように見えます。
keepAliveTimeまたはgetPoolSizeについて誤解はありますか?getPoolSizeが正しいAPIでない場合、「生きている」スレッド(アイドルまたはビジー)の数を知るにはどうすればよいですか?
前もって感謝します。
android - ExecutorのRunnable内の変数
単純なファイル書き込み操作を実行するRunnableがあり、このRunnableがエグゼキュータで呼び出されたとします。
エグゼキュータはシングルスレッドのエグゼキュータクラスです。
execute()が呼び出された瞬間に、_dataの直接の内容が保存されますか?つまり、ランナブルがキューに送信されると、先に進んで_dataに変更を加えることができ、変更はファイルに書き込まれませんか?
file.write(何か他のもの)を実行してしまう可能性はありますか?
java - ExecutorService は、最近追加された Callable のみを実行します
ネットワーク経由でデータをフェッチするための単一スレッドのエグゼキュータ サービスがあります。
ユーザーが検索ボックスに入力しているときに、考えられるネットワーク タスクをキューに入れています。私が望むのは、以前のすべてのリクエストをキャンセルし、エンキューして最新のリクエストのみをすぐに実行することです。
私の現在のアプローチは、execute() および submit() メソッドをオーバーライドし、super を呼び出す前にキューをクリアすることです。
これについて何か考えはありますか?
java - Java executor のデフォルトの実行ポリシー
のデフォルトの実行ポリシーはExecutors.newSingleThreadExecutor()
何ですか?
これは文書化されていますか?
FIFOを保証する必要があります。
java - Futureまたは自分の FutureTaskで cancel(true) を呼び出す必要があります
MyFutureTask extends FutureTask<Void>
メソッドでコードを実行するカスタムクラスがありdone()
ます。
私はそれに呼び出す ExecutorService を使用submit(new MyFutureTask())
します。
Future<?>
これで、submit を呼び出した後に返される への参照を保持できますが、cancel を呼び出すと、isCancelled()
メソッドは決して true を返しません。
Future<?>
返されるオブジェクトを無視して、代わりにそれを操作しMyFutureTask
て呼び出す必要がありcancel(true)
ますか?
Future<?>
では、オブジェクトの使用は何ですか?
編集: Java の Future と FutureTask の違いは何ですか? このスレッドから私は違いを理解しています。
デフォルトのキャンセル動作に加えて、進行中のネットワーク呼び出しを停止したいので、FutureTask を使用するルートは正しいと思います。誰かが確認できますか?
java - Java Concurrency in Practice: BoundedExecutor の実装
これは、『Java Concurrency in Practice』ブックの BoundedExecutor クラスの実装です。
RejectedExecutionException がさらに伝播するのではなく、キャッチされている理由はありますか? この場合、タスクが拒否された場合、タスクを提出した人は賢明ではありません。
catch-block を finally-block に置き換えたほうがよいのではないでしょうか?
これは、Runnable の代わりに Callable を受け入れる BoundedExecutor の私の実装です。
それは正しい実装ですか?
ありがとう!
java - ExecutorServiceのinvokeAll()が呼び出されているCallableを複製する
から callable のリストを呼び出そうとすると問題が発生しfixedThreadPool
ます。すべての callable が実行されますが、それらの一部は異なるスレッドに同時にディスパッチされているように見えるため、実際には複数回呼び出されます。以下のコードを参照してください。
java - Executorを使用する場合と使用しない場合のマルチスレッドの違い
通常のマルチスレッドとexecutorを使用したマルチスレッド(スレッドプールを維持するため)のパフォーマンスの違いを調べようとしています。
以下は両方のコード例です。
エグゼキュータコードなし(マルチスレッドあり):
エグゼキュータ付き(マルチスレッド):
サンプル出力
両方のプログラムを実行すると、エグゼキュータは通常のマルチスレッドよりも高価であることがわかります。なんでそうなの?
そしてこれを考えると、エグゼキュータの正確な使用法は何ですか?エグゼキュータを使用してスレッドプールを管理します。
エグゼキュータが通常のマルチスレッドよりも良い結果を出すことを期待していました。
マルチスレッドでソケットプログラミングを使用して何百万ものクライアントを処理する必要があるため、基本的にこれを行っています。
どんな提案も役に立ちます。