JavaサーブレットQ&A LV2
■ このスレッドは過去ログ倉庫に格納されています
0815デフォルトの名無しさん
NGNGnative Thread=実行可能スレッドにタイムスライススケジューリングでCPU実行権を順に割り付ける。
メリット:どのスレッドも大体均等にうごくので、適当にコーディングしてもプログラマの意図に近い動作になる
デメリット1:きちんと意識してガードをかけないと、スレッド間共有データが同期しなくなる。
デメリット2:スケジューリングの精密なコントロールは不可能。JVMのスケジューラ依存。
デメリット1をわかっていない素人がサーバーサイドを作っている(流行に乗って無知バカのくせに
仕事で導入してる糞SIが、最近多い)と、大抵マヌケな事態になる。
green Thread=コンテキストスレッドが明示的に実行権を手放すまで、コンテキストスイッチが発生しない。
メリット:プログラマが完全にスレッドの実行スケジュールをコントロールできる。
デメリット:sleepだのwait/notifyだのyieldだのをきちんとプログラムに書かないと、悲劇が起きる。
J2SESDK付属のランタイムは、今はみんなnativeみたいだけど・・・
JVM仕様はどちらかでなければならないと規定しているわけではないので
どちらでもチャントうごくようにコーディングしなきゃダメよ。
■ このスレッドは過去ログ倉庫に格納されています