Zártervezés
Ismerd meg a zár megvalósításának ötletét: 1. Kezdjük azzal, hogy létrehozz egy könyvtárat zárként (znode), amelyet általában a zárolt entitás leírására használnak, ezt nevezik :/lock_node 2. Az ügyfél, aki meg akarja szerezni a zárat, létrehoz egy znode-ot a zár könyvtárában, mint a zár/lock_node gyermekcsomópontja, és a csomópont típusa Ordered Temporary Node (EPHEMERAL_SEQUENTIAL); Például két kliens hoz létre znode-okat, /lock_node/lock-1 és /lock_node/lock-2 3. A jelenlegi kliens getChildren(/lock_node) hívást indít, hogy megkapja a lock könyvtár összes gyermekcsomópontját, nem állította be a watch-t, majd megkapja azokat a testvércsomópontokat, amelyek kisebbek nála (a 2. lépésben létrehozva). 4. Az a csomópont, amely a 3. lépésben kisebb önmagánál van, nem létezik && a legkisebb csomópont ugyanaz, mint a 2. lépésben létrehozott, ami azt jelzi, hogy a jelenlegi kliens szekvencia a legkisebb, a zárolás és a vég. 5. Az ügyfél figyeli annak a rendezett ideiglenes csomópontnak az állapotát, amely a legkisebb önmagához képest 6. Ha a megfigyelt alcsomópont állapota megváltozik, ugorjunk a 3. lépésre, és folytassuk a követési műveleteket, amíg a zár verseny ki nem áll.
A szerző itt nem mutatja be a terjesztési zárat, nézzük meg az egész kódtervezés folyamatábráját az alábbiak szerint
|