-1

マルチタスクに問題があります。以下で説明しました。

  • Web アプリですべてのユーザー (たとえば 200 ユーザー) に対して何らかのプロセスを実行する必要があります。

  • 処理はプロトコル要求呼び出しです。

  • スレッド作成間のスリープ時間で最大 1000 人のユーザーを実行できます。しかし、スリープ時間なしで実行する必要があり、最大 1000 ユーザーまで実行する必要があります。

  • 200 人のユーザーに対して実行しようとすると、応答がありません。長い間止まっていました。理由はわかりません。

誰かがそれを解決する考えを持っているなら、私に知らせてください...ありがとう...

4

1 に答える 1

1

まあ、それはあまりにも多くのスレッドをあまりにも速く作成することに問題があるように思えます。

スレッド作成のオーバーヘッドを最小限に抑えるために、ある種のThreadPoolを使用してみてください。基本的に、作成されたスレッドの固定セットが必要になり、タスクごとに新しいスレッドを作成するのではなく、それらのスレッドを新しいタスクに再利用します。

たとえば、各タスクの実行に 1 秒かかり、1 秒あたり 2 つのタスクを 100 秒間取得する場合、タスクごとのスレッド方式では、すべてのタスクを実行するために 200 のスレッドが作成されます。100 個のスレッドのプールは、これらのスレッドの一部を複数回使用して 200 個のタスクすべてを実行でき、何も待機中またはスリープ状態のままにすることはありません。

于 2012-08-07T04:49:51.490 に答える