全後半で分けようかと思ったのですが、想像していたより複雑な内容なので、tokyoclj3では整理しきれませんでした。ということで、refの内部構造とトランザクションのアボートを考慮しないref-setでのrefのオブジェクトツリーの状態遷移を整理してみます。 次回tokyoclj4あたりで、もう一歩踏み込んでコードを読んでみようかと思います。ポイントを使用した平行性制御についてはまだ完全に整理できていないので、一部説明が逃げ腰です。また、間違いがあればご指摘ください。 僕は構造からつかみにいくタイプなので、関連を整理してクラス図を書いてみました。 ソースにコメントがないので責務を推測します(余談ですが、java.util.concurrent下のコードはコメントが詳しく書いてあったり、実装根拠の論文へのリンクがあったりするので、面白いです)。 ◆ Ref STMのトランザクション内で変更可