[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1636] Re: volatile のはなし Re: Java スレッドプログラ ミングを読む会第 6 回の議事録



こんにちは、澤田です。

On Tue, 08 May 2001 22:49:31 +0900 (JST)
in [jfriends-ml 1634] Re: volatile のはなし Re: Java スレッドプログラミングを読む会第 6  回
の議事録
TAKEKAWA Tsutomu <takekawa@xxxxxxxxxxxxxx> wrote:

> こんばんは。武川です。

> また、作業メモリを持つ理由というのは何なのでしょうか?

「作業メモリ」というのは、JVM のソフトウェアの問題ではなくて、
純粋なハードウェアに属するものだと思います。
"Javaスレッドプログラミング" では 2.2.7 で説明されていますが、
CPU 内のレジスタなんかが「作業メモリ」だと私は理解しています。

マルチCPU だったら「作業メモリ」は CPU ごとに違うのはあたりまえ
ですし、Win32 向け JVM のようなネイティブスレッドの JVM の場合は
スレッドを切り替えるときに CPU コンテキストが替わります。
(つまりレジスタの内容が替わってしまう)
結果的に、スレッドごとに違う作業メモリを持つことになります。

こういうものは CPU によって全然違う可能性があるので、JLS では
「作業メモリ」として抽象化してしまっているのではないでしょうか?

___
澤田 大輔(die)
email: die@xxxxxxxx(home), swd@xxxxxxxxxxxxxxxx(office)