ただいま。
とりあえずキリのいいところまで
仕事をしようw
-----
そうそう。今日学んだこと。
MSDNドキュメントのCreateThreadより
「1つのプロセスが作成できるスレッドの数は、利用可能な仮想メモリによって
制限されます。既定では、各スレッドに 1MB のスタック空間が割り当てられて
います。そのため、最大 2,028 個のスレッドを作成できます。」
ほぅ。
「また、既定のスタックサイズを減らすことにより、さらに多くのスレッドを作
成することもできます」
ほぅほぅ。
ためしにjavaでひたすらthreadを作るだけのツール(shudoさん作)を
1スレッドあたりのスタックサイズをちょっと変えて実行してみる。
-----
#java -Xss1024k -cp classes ManyThreadsTest
→1771個。
まー、他のアプリも動いてたりVMも動いてたりするから
2028個には届きませんが…
#java -Xss64k -cp classes ManyThreadsTest
→24722個
ふむ。
#java -Xmx512m -Xss64k -cp classes ManyThreadsTest
→18188個
減ったw
スレッド用に使えるスタック領域が
ヒープ確保したせいで減ったっちゅうことかい?
blog comments powered by