Date: Sat, 26 Dec 98 13:21:31 JST From: SHUDOH Kazuyuki Subject: [JavaHouse-Brewers:22357] Re: accept =?ISO-2022-JP?B?GyRCJE45ZzRWJE5AXEIzTVc1YSRPTDU7axsoQg==?= ? To: java-house-brewers at java-house.etl.go.jp (JavaHouse Brewers ML) Message-Id: <199812260417.NAA05442@cafe.muraoka.info.waseda.ac.jp> 首藤です。 風間さん wrote: > > なるほど。Jigsawが先にスレッドを作って使いまわすようなことをしているのを > > 読んだ覚えがあります。denial of service attackへの防御にもなりますね。 > > スレッドプールを作成することは、本格的なマルチスレッドサーバを作る場合 > には望ましいと思います。 ObjectSpace社の ORB、Voyager もスレッドプールを作っています。 私が作っているシステムも、後輩が作っている ORB も スレッドプールを作っています。 > 結局、スレッド数の制御と、スレッドorオブジェクトの再利用をするわけです。 > オブジェクトの再利用をすることは、GCの間隔を長くすることができるので、 > 性能向上に寄与します。 オブジェクトの再利用もですが、JVM の下のレイヤ (OS) のス レッドを再利用することが、特に反応速度の点で有効です。 OS のスレッドを再利用するためには、Thread クラスのオブジェ クトを再利用するだけでは、実は駄目です。OS のスレッドは、 new Thread(...) ではなく Thread#start() で作成されるので、 プール中のスレッドはあらかじめ start() しておかないといけません。 処理の要求があってから Thread クラスのオブジェクトを new, start() するのは時間がもったいないです。 以上は JDK について言えることで、他の JVM でどうなのかは知りません。 SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように shudoh at muraoka.info.waseda.ac.jp