3章: 線形化可能性
TAoMPで紹介されている一貫性は以下の3種類です。 - 静止一貫性 - 逐次一貫性 - 線形化可能性
何となく線形化可能性だけ書きます
線形化可能性
線形化可能性ではオーバーラップしないメソッド呼び出しの順序では、それと対応する逐次履歴と同じである必要があります。呼び出しがオーバーラップする場合、それぞれの呼び出し順序は曖昧でよく、呼び出し順序は入れ替わっても良いです。オーバーラップしないときに、特定の順序または逆の順序で実行した場合と一致することを示します。図にすると下記のように表すことができます。
上の図ではthread1がObjに3を書く呼び出し、次にthread2がObjに-7を書き込んでいます。しかし、呼び出しのオーバーラップが発生する為に、thread2の読み込みは3になっています。これを線形化ポイントを付け図に示すと下記のようになります。
(※ 線形化ポイントとは、メソッドの呼び出し結果が他のメソッド呼び出しから参照できるようになるステップ)