[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12421] Re: 「 Java Concurrency in Practice 」を読 む会 第 1 回 議事録
高橋(徹)です。
吉本さん、議事録作成お疲れ様です。
"yoshih0079@xxxxxxxxxxxxxxxx"さんは書きました:
> 遅くなりましたが、第1回 「Java Concurrency in Practice」を読む会の議事録を
投稿いたします。
>
> ○リナックスなどはN:Nスレッドだが、サンはSolaris9から1:1スレッド。
> →Windowsは1:1スレッド?
> →1:1スレッドの方がオーバーヘッドが少なく効率的。
> →CPUの数によっても違うので、一概にどちらがよいとは言えない。
"N:N"は、"M:N"の誤記ですね。
Linuxは、カーネル2.6からNative Posix Thread Library for Linux(NPTL)を
搭載し、これは1:1スレッドモデルです。
http://www.itmedia.co.jp/enterprise/0306/27/epn36.html
それ以前の古いLinuxスレッドも1:1スレッドモデルですが、これは実装の簡便
さの理由で作られたPOSIXもどきの中途半端な代物です。
IBMがLinux向けに開発していたNext Generation Posix Threading(NGPT)は、
M:Nスレッドモデルですが、標準搭載されるに至っていないようです。
Sunの技術資料「Solarisオペレーティング環境におけるマルチスレッド技術」
http://sdc.sun.co.jp/solaris/solaris9/private/multithread.pdf
が参考になります。
M:Nはユーザレベルとカーネルレベルの2段階でスケジューリングが行われるた
め、実装が複雑なのとオーバーヘッドが増えます。一方カーネルもマルチスレ
ッドに対する効率化が昔に比べて改善され、また利用可能なメモリも増えたこ
とから1:1の欠点も解消され、現時点では1:1が優位になっているということの
ようです。
> ○AtomicLongは、CPUのネイティブメソッドでどのように対応しているのか? →
【宿題】
[jfriends-ml 12415]をご参照下さい。
--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx