読書会(Java仮想マシン仕様)第6回議事録

[ 戻る ]


第6回読書会議事録

日時:2000年 3月 25日(土) 10〜17時
場所:Javaカンファレンス事務局会議室(曙橋)
出席者(敬称略):遠藤・山下・前橋・橋本・高橋・福原
      ・酒井・野村・石黒・小川・斎藤(記)
範囲:
  第8章からはじめて8章が終わった段階で、8章の8.13節で第2版にて
追加された部分を読み、6章に戻り6.4節はインストラクションの説明
なので重要と思われるものだけ読んだ。

内容:
8 スレッドとロック
8.1 用語と枠組み
・用語と流れを整理
   Engine   WorkCopy WorkingMemory  MainMemory  (対応に間違いがあるかも?)
         use
      <----------o
        assign                  read
      o---------->           <----------o
                    load
                 <----------o
                    store
                 o---------->
                                write
                             o---------->

8.3 変数に関する規則
・doubleとlongは、32bit単位の2つに分割されて扱われる。
→double, long変数の扱いは実装依存により2つの値の混合となるので注意。

8.7 volatile変数に対する規則
・WorkingMemoryのみで操作せず、MainMemoryに処理する毎に操作を行なう。

8.13 ロックと同期化
・英語版第2版:8.13 Locks and Synchronizationで、追加項目あり。
追加分:
 Although a complier for the Java programming langage nomally guarantees structured use of locks(see
Section 7.14,"Synchronization"),three is no assurance that all code submitted to the Java vritual machine will
odey this property. Implementations of the Java virtual machine are permitted but not required to enforce both
of the following two rules guaranteeing structured locking.

VM Spec Threads and Locks

Let T be a thread and L be a lock. Then:

1. The number of lock operations performed by T on L during a method invocation must equal the number
   of unlock operations performed by T on L during the method invocatiojn whether the method invocation
   completes normally of abruptly.

2. At no point during a method invocation may the number of unlock operations performed by T on L since
   the method invocation exceed the number of lock operations performed by T on L since the method
   invocation.

In less formal terms, during  a method invocation every unlock operation on L must match some preceding lock
operation on L.

Note that the locking and unlocking automatically performed by the Java vertual machine when invoking a
synchronized method are considered to occur during the calling method's invocation.


** お昼は、韓国料理屋にて食事。**
午後:6章〜

6.4 Java仮想マシンの命令セット
 興味深い命令のみ読書
・invoke命令(メソッド呼び出し)
  invoke_interface      interfaceクラス、メソッド
  invoke_special        メソッド、オーバーライドしたメドッソからsuperクラスを呼び出す場合。
  invoke_static         staticメソッド
  invoke_virtual        invoke_special以外のインスタンスメソッド

・instanceof
  英語版第二版では、interfaceを左辺に記述できるように書かれているがよく分からない?

・tableswitch, loockupswitch, moniterrnter/moniterexit, new, newarrayについて読んだ。

次回の読書本 提案内容
1.入門書
 Sun Java Turtorial
 Teach yoreself
 Java2 in 21 Days

2.設計
 デザインパターン関連
 UML関連
 Gof本
 Javaとピザとデザインパターン
 Javaプログラムデザイン

3.基礎
 vm仕様(今回済み)
 言語仕様
 Thread仕様
 ソースコードを読む?
 JITコンパイラ
 計算機プログラムの構造と解釈

4.Java 仕様書
 Servlet
 Jine
 EJB
 XML
 Java2D

** 次回の読書本をMLにて選考する予定 **

** 雑誌掲載用の写真を取った **

** 前回と同様に夜はイタリア料理の店で懇親会 **
→お店の人にうるさいと何度も注意されつつめげずに騒いだ。

次回予定:未定

                                                      以上

PS.遅くなりました。間違い不足がありましたらご指摘願います。
---
esaito@fdi.fujitsu.co.jp


[ 戻る ]