問題タブ [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.

0 投票する
3 に答える
1905 参照

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として接続する必要がありますか?ドキュメントのセットアップセクションには、これについての言及はありません。

0 投票する
2 に答える
7953 参照

java - xml構成のないSpring @Async

25.5.3 要素

@Scheduled アノテーションと @Async アノテーションの両方を有効にするには、タスク名前空間の「アノテーション駆動型」要素を構成に含めるだけです。

@Async アノテーションが付けられたメソッドに対応するタスクを処理するためのエグゼキューター リファレンスが提供され、@Scheduled アノテーションが付けられたメソッドを管理するためのスケジューラー リファレンスが提供されていることに注意してください。

XMLなしでこれを行う方法はありますか?

0 投票する
3 に答える
4264 参照

java - コアスレッドを存続させ、ThreadPoolExecutorで余分なスレッドを消滅させる方法は?keepAliveTimeが期待どおりに機能しない

ThreadPoolExecutorを使用してスレッドプールを管理しています。私たちが欲しいのは:

  1. プールのスレッド数がcorePoolSize未満の場合は、新しいタスクのために新しいスレッドを開始します。
  2. プールにcorePoolSizeを超えるスレッドがあり、すべてがビジーである場合は、maxPoolSizeに達するまで、新しいタスクのために新しいスレッドを開始します。その場合、タスクを拒否します。
  3. アイドル状態のスレッドのcorePoolSize数を維持し、keepAliveTimeを超えてアイドル状態になっていると、余分なスレッドは停止します。

Java6ドキュメントによると、keepAliveTimeは上記のように機能するはずです。しかし、私のテストコードでは、一貫して機能しません。

keepAliveTimeを0に設定すると、正常に機能し、コアスレッドを常に存続させ、終了時に余分なスレッドを終了します。
ただし、以下に示すように、keepAliveTimeを正の値に設定すると、コアスレッドであるかどうかに関係なく、すべてのアイドル状態のスレッドが終了するように見えます。

keepAliveTimeまたはgetPoolSizeについて誤解はありますか?getPoolSizeが正しいAPIでない場合、「生きている」スレッド(アイドルまたはビジー)の数を知るにはどうすればよいですか?

前もって感謝します。

0 投票する
1 に答える
249 参照

android - ExecutorのRunnable内の変数

単純なファイル書き込み操作を実行するRunnableがあり、このRunnableがエグゼキュータで呼び出されたとします。

エグゼキュータはシングルスレッドのエグゼキュータクラスです。

execute()が呼び出された瞬間に、_dataの直接の内容が保存されますか?つまり、ランナブルがキューに送信されると、先に進んで_dataに変更を加えることができ、変更はファイルに書き込まれませんか?

file.write(何か他のもの)を実行してしまう可能性はありますか?

0 投票する
1 に答える
154 参照

java - ExecutorService は、最近追加された Callable のみを実行します

ネットワーク経由でデータをフェッチするための単一スレッドのエグゼキュータ サービスがあります。

ユーザーが検索ボックスに入力しているときに、考えられるネットワーク タスクをキューに入れています。私が望むのは、以前のすべてのリクエストをキャンセルし、エンキューして最新のリクエストのみをすぐに実行することです。

私の現在のアプローチは、execute() および submit() メソッドをオーバーライドし、super を呼び出す前にキューをクリアすることです。

これについて何か考えはありますか?

0 投票する
1 に答える
686 参照

java - Java executor のデフォルトの実行ポリシー

のデフォルトの実行ポリシーはExecutors.newSingleThreadExecutor()何ですか?
これは文書化されていますか?

FIFOを保証する必要があります。

0 投票する
2 に答える
512 参照

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 を使用するルートは正しいと思います。誰かが確認できますか?

0 投票する
2 に答える
723 参照

java - Java Concurrency in Practice: BoundedExecutor の実装

これは、『Java Concurrency in Practice』ブックの BoundedExecutor クラスの実装です。

RejectedExecutionException がさらに伝播するのではなく、キャッチされている理由はありますか? この場合、タスクが拒否された場合、タスクを提出した人は賢明ではありません。

catch-block を finally-block に置き換えたほうがよいのではないでしょうか?

これは、Runnable の代わりに Callable を受け入れる BoundedExecutor の私の実装です。

それは正しい実装ですか?

ありがとう!

0 投票する
2 に答える
921 参照

java - ExecutorServiceのinvokeAll()が呼び出されているCallableを複製する

から callable のリストを呼び出そうとすると問題が発生しfixedThreadPoolます。すべての callable が実行されますが、それらの一部は異なるスレッドに同時にディスパッチされているように見えるため、実際には複数回呼び出されます。以下のコードを参照してください。

0 投票する
2 に答える
5358 参照

java - Executorを使用する場合と使用しない場合のマルチスレッドの違い

通常のマルチスレッドとexecutorを使用したマルチスレッド(スレッドプールを維持するため)のパフォーマンスの違いを調べようとしています。

以下は両方のコード例です。

エグゼキュータコードなし(マルチスレッドあり):

エグゼキュータ付き(マルチスレッド):

サンプル出力出力

両方のプログラムを実行すると、エグゼキュータは通常のマルチスレッドよりも高価であることがわかります。なんでそうなの?

そしてこれを考えると、エグゼキュータの正確な使用法は何ですか?エグゼキュータを使用してスレッドプールを管理します。

エグゼキュータが通常のマルチスレッドよりも良い結果を出すことを期待していました。

マルチスレッドでソケットプログラミングを使用して何百万ものクライアントを処理する必要があるため、基本的にこれを行っています。

どんな提案も役に立ちます。