Zasnova zapornice
Pridobite idejo o implementaciji ključavnice: 1. Začnite z ustvarjanjem imenika kot zaklepa (znode), ki se običajno uporablja za opis zaklenjene entitete, imenovane :/lock_node 2. Odjemalca, ki želi pridobiti zaklep, ustvari znode v mapi lock kot podvozlje lock/lock_node, tip vozlišča pa je Ordered Temporary Node (EPHEMERAL_SEQUENTIAL); Na primer, dva odjemalca ustvarita znode, /lock_node/lock-1 in /lock_node/lock-2 3. Trenutni odjemalec pokliče getChildren(/lock_node), da pridobi vsa podvozlja zaklepne mape, brez nastavitve watch, nato pa pridobi bratska vozlišča, manjša od njega (ustvarjeno v koraku 2). 4. Vozlišče, ki je manjše od njega v koraku 3, ne obstaja in in najmanjše vozlišče je enako tistemu, ustvarjenemu v koraku 2, kar pomeni, da je trenutna zaporedna številka odjemalca najmanjša, dobi zaklep in konec. 5. Odjemalec spremlja stanje urejenega začasnega vozlišča, ki je najbližje njemu najmanjšemu 6. Če se status nadzorovanega podvozlja spremeni, preskočite na korak 3 in nadaljujte z nadaljevanjem, dokler se dirka za zaklepanje ne konča.
Avtor tukaj ne bo predstavil zaklepa distribucije, poglejmo si diagram poteka celotne zasnove kode kot je
|