- 51 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 14:14:40 ]
- windows c言語です。
_beginthreadexでスレッドを数千つくろうとしてるのですが、 スレッド数400ぐらいこえたところで、_beginthreadが0を返しだすので仕方なくsleepいりのbusyloop で待って_beginthreadしつづけています。 スレッド数をタスクマネージャでながめると400になり、だんだんへって10桁程度になってから また400に跳ね上がるのくりかえしをして、正常に終了します。が遅いです。 だんだん減っているときにはすぐに次の_beginthreadが成功してくれて、 なぜ、400のままずっといき、最後がだんだん減っておわらないのかわからないです。 あと、なぜ400で限界になるのでしょうか? ちなみにスタックサイズをでかくするとスレッド数の限界はもっと減ります。 メモリがどんどんくわれていってスレッドももっとたくさんできて欲しいのですが・・・ スレッドの内容はメモリを動的確保しhtmlをネットから拾ってきて読むものです。 これだけでわかる人 ヒントください。
|

|