問題タブ [threadpoolexecutor]

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 投票する
1 に答える
627 参照

android - ThreadPoolExecutor で AsyncTask<> を実行するのは効率的ですか?

私はそのようなタスクを実装したいと思います: バックグラウンドで (アプリがバックグラウンドにあるとき)、ユーザーの新しいデータを探し、それについて通知します。これを定期的に(2〜3秒ごとに)行う必要があります。データが異なるため、これにはさまざまな方法を使用します( FetchImages 、 FetchMessages 、 FetchNewConversations など)。Android 4で知る限り、すべてのネットワーク操作はバックグラウン スレッドなので、このすべての操作を AsyncTask から継承されたクラスとして実装し、それらを呼び出すために、次のように記述します。FetchImages.execute ()ただし、アクティビティは 1 回しか実行されないため、次 ScheduledExecutorServiceのように呼び出すことにしました。

問題は、それが良いアイデアなのか、それともより優れた効率的なソリューションが存在するのかということです。前もって感謝します!

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

android - ThreadPoolExecutorを使用するAsyncHttpClientは、すべてのタスクがいつ終了したかを知るために使用しますか?

私はAsyncHttpClientいくつかのJSONを取得するために使用しています。私のメソッドはJSONを解析し、別のgetリクエストを起動するため、実際に実行されているスレッドの数はわかりません。ThreadPoolExecutorいくつか検索した後、すべてのスレッドがいつ終了したかを知るために使用できると思うので、データベースに書き込むことができます。私が使用している場合、エグゼキュータは私がジョブを送信したことをどのように知ることができAsyncHttpClient.get()ますか?

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

android - ThreadPoolExecutorとAndroidHttpClientを使用したRejectedExecutionException

私は自分のThreadPoolExecutorを使用して、すべてのタスクがいつ終了したかを確認しています。client.get()呼び出しであるメソッドがあり、成功すると、より多くのclient.get()呼び出しを実行します。ただし、java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@414ca470 rejected from java.util.concurrent.ThreadPoolExecutor@414ab1a0[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]最初の成功の内部からclient.get()を呼び出しているときに取得しています。このエラーを修正するにはどうすればよいですか?

parseSiloメソッド

0 投票する
6 に答える
30352 参照

java - ThreadPoolExecutor : タスクがキューに入れられ、送信されません

ThreadPoolExecutor に送信されたタスクが長時間実行されるシナリオがあります。スレッド プールが開始されると、コア プール サイズ = 5、最大プール サイズ = 20、キュー サイズ 10 で開始します。このアプリケーションでは、約 10 個のタスクが送信されます。ほとんどの場合、これらのタスクは数分または数時間実行されてから完了します。ただし、5 つのタスクすべてが I/O で停止する状況がありました。その結果、コア プール サイズが最大に達しましたが、Threadpoolexecutor キューはいっぱいではありませんでした。そのため、追加の 5 つのタスクを実行する機会がありませんでした。そのようなシナリオをどのように処理できるかを提案してください。このような状況では、キューを小さくする方が良いオプションですか? threadPool を初期化する際の最適なキュー サイズは?

また、ハングしたタスクに関して、スレッドプールからスレッドを引き出す方法はありますか? その場合、少なくとも他のタスクが実行される可能性があります。

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

java - Android 並列(同時)画像ダウンロード

みんな助けてくださいそれは重要です。

5 分以内に約 2000 枚の画像をダウンロードする必要があります。そこで、画像の並列ダウンロードを行うことにしました。

誰かが並列ダウンロードを行うためのより良い方法を提案してくれたり、どこが間違っているのか教えてくれたりしたら、本当に感謝しています。

エラーログでは、完了したタスクの数は常にさまざまです...

助けてください。

Artem Zinnatullin による Async task Executor を使用しています

}

次に、ループを使用してすべての画像をダウンロードしています。

ダウンロード方法は次のようになります。

Androidアプリケーションを起動すると、このエラーが発生します

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

java - AndroidのScheduledThreadPoolExecutorの有効なcorePoolSizeはゼロですか?

ドキュメントによると、corePoolSize がゼロ未満の場合、コンストラクターは IllegalArgumentException をスローします。これは、0 が有効な値であることを示しています。これは、アイドル状態のスレッドをプールに保持しないことを意味します。これは実際に実際に機能しますか? この非 Android 固有の質問は、スレッドが作成されず、スケジュールされたタスクが実行されないことを示唆しています。

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

java - 現在実行中のスレッドを取得する方法

ThreadPoolExecutor を使用して、ブロッキング キューからのリクエストを処理するスレッドを起動しています。キューが空の場合、これらすべてのワーカー スレッドが待機しています。これにより、このプール内のすべてのスレッドが待機状態になります。

また、上記のプールで現在アクティブなスレッドを取得しようとするスケジュールされた実行プログラムの下で起動し、0 の場合はプールをシャットダウンします。

問題は、10 秒後にスケジューラ スレッドが activeThreadCount=0 になり、プールがシャットダウンされることです。

私達はことを知っています:

getActiveCount():アクティブにタスクを実行しているスレッドのおおよその数を返します。

これは、アクティブな状態にあるスレッドの正確な数を示していない可能性があります。

とにかく、最初のプールからのすべてのスレッドが待機状態にあるかどうかを知ることはできますか?

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

android - Android - ユーザー ログイン認証プロセスでの Asynctask および ThreadPoolExecutor 例外

LoginActivity クラスでは、取得した電子メール アドレスとパスワードの認証を行うために Asynctask クラスを使用しています。

これは、ユーザーを認証するために Asynctask クラスを拡張する UserLoginTask クラスに制御を渡す Attemptlogin 関数を呼び出すメイン アクティビティ クラスです。

ただし、実行は常に停止し、Log.d(TAG, mUsername+ "--" + mPassword);ThreadPoolExecutor の例外をスローします。

私はアンドロイド開発に慣れていないので、コードの何が問題なのかを理解するのを手伝ってください。

そして、これは認証に使用される関数です

スローされる例外は、

そして、この ThredPoolExecutor タブが開き、表示されます

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

java - スケジュールされたエグゼキュータの精度

JavaのScheduledExecutorServiceに問題があります(数日前にこの問題に直面しなかったことが、私にとって奇妙なことです)。以下のコードとコンソール出力を見つけてください。タスクを繰り返し実行する間の遅延は 1 ミリ秒であるため、理想的には毎秒 1000 のカウントに到達する必要があります (数ミリ秒を与えるか、または数ミリ秒かかります) が、これは起こっていません。助けてください..

コード:

コンソール出力

1000 2013 年 3 月 13 日 14:43:54.477 2000 2013 年 3 月 13 日 14:44:10.296 3000 2013 年 3 月 13 日 14:44:26.381 4000 2013 年 3 月 13 日 14:44:42.621 5000 2013 年 3 月 13 日14:44:55.907 6000 2013 年 3 月 13 日 14:44:58.516 7000 2013 年 3 月 13 日 14:45:05.896 8000 2013 年 3 月 13 日 14:45:10.292 9000 2013 年 3 月 13 日 14:45:15.1209 1 2013 年 3 月 13 日 14:45:18.187

ありがとう、アビナフ

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

java - ThreadPoolExecutor with unbounded queue not creating new threads

My ThreadPoolExecutor is failing to create new threads. In fact I wrote a somewhat hacky LinkedBlockingQueue that will accept any task (i.e. it is unbounded) but call an additional handler - which in my application spews warning trace that the pool is behind - which gives me very explicit information that the TPE is refusing to create new threads even though the queue has thousands of entries in it. My constructor is as follows:

Why is it not creating new threads?