- PR -

スレッドの最大数

1
投稿者投稿内容
スパイク
常連さん
会議室デビュー日: 2002/07/05
投稿数: 24
投稿日時: 2003-02-27 10:53
スレッドプログラミングの初心者です。

ある要件で、現在のスレッド数を100から1000個に増やそうとしているのですが、
これは1つのプロセスで生成するスレッドの数としては多すぎる数なのでしょうか?
(スレッドプログラミングの一般論やパフォーマンス的に..という意味です)
また、Windowsではスレッドの最大数などを制限していることはあるのでしょうか?

スレッド生成方法
起動時にメインスレッドを生成し、ある要求をきっかけに
メインスレッドが子スレッドを生成するというやり方です。
エラーが起きない限り、一度生成したスレッドはプロセス終了まで
存在しています。

環境:
Windows2000
VC++ 6.0
未記入
ぬし
会議室デビュー日: 2002/03/28
投稿数: 255
投稿日時: 2003-02-27 12:49
>ある要件で、現在のスレッド数を100から1000個に増やそうとしているのですが、
>これは1つのプロセスで生成するスレッドの数としては多すぎる数なのでしょうか?
>(スレッドプログラミングの一般論やパフォーマンス的に..という意味です)
一般論として,CPU数にもよりますがスレッドが多ければ多いほど
パフォーマンスが落ちると思ってよいです.

CPU数が数百もあるというならともかく,1〜数個程度ではスレッド数も
そんなに多くしない(例えば十数個以下)ほうが無難です.

>また、Windowsではスレッドの最大数などを制限していることはあるのでしょうか?
#これは知りませんが,おそらくは最大数よりは遥かに小さい数に
#制限しておくべきだと思います.

>エラーが起きない限り、一度生成したスレッドはプロセス終了まで存在しています。
不要なスレッドは殺すなり再利用するなりを検討すべきでは.
スパイク
常連さん
会議室デビュー日: 2002/07/05
投稿数: 24
投稿日時: 2003-02-27 20:36
スレッドの数は十数個以下になるように設計してみます。

>>エラーが起きない限り、一度生成したスレッドはプロセス終了まで存在しています。
>不要なスレッドは殺すなり再利用するなりを検討すべきでは.
再利用は行っています。

回答、ご指摘ありがとうございました。
参考になりました。
1

スキルアップ/キャリアアップ(JOB@IT)