Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9508|Atbildi: 2

Zookeeper izkliedētās slēdzenes ieviešana

[Kopēt saiti]
Publicēts 20.03.2018 16:23:52 | | | |
Slēdzenes dizains

  Iegūstiet slēdzenes ieviešanas ideju:
1. Sāciet ar direktorija izveidi kā slēdzeni (znode), ko parasti izmanto, lai aprakstītu bloķēto entītiju, ko sauc par :/lock_node
2. Klients, kurš vēlas iegūt slēdzeni, izveido znode bloķēšanas direktorijā kā slēdzenes/lock_node bērnu mezglu, un mezgla tips ir pasūtīts pagaidu mezgls (EPHEMERAL_SEQUENTIAL);
Piemēram, divi klienti izveido znodes, /lock_node/lock-1 un /lock_node/lock-2
3. Pašreizējais klients izsauc getChildren(/lock_node), lai iegūtu visus bloķēšanas direktorijas bērnu mezglus, neiestatot pulksteni, un pēc tam iegūstot brāļu mezglus, kas ir mazāki par sevi (izveidots 2. solī).
4. Mezgls, kas ir mazāks par sevi 3. solī, neeksistē && mazākais mezgls ir tāds pats kā 2. solī izveidotais, norādot, ka pašreizējais klienta kārtas numurs ir mazākais, iegūstiet slēdzeni un beigas.
5. Klients uzrauga sakārtotā pagaidu mezgla stāvokli, kas ir nākamais mazākais sev
6. Ja mainās pārraudzītā apakšmezgla statuss, pārejiet uz 3. soli un turpiniet turpmākās darbības, līdz bloķēšanas sacensības tiek izbeigtas.     

Autors šeit neieviesīs izplatīšanas bloķēšanu, apskatīsim visa koda dizaina plūsmas diagrammu šādi





Iepriekšējo:Detalizēts skaidrojums par AutoResetEvent .net/c#
Nākamo:Attiecībā uz problēmu, ka Android 7.0 nevar veikt https pakešu uztveršanu
 Saimnieks| Publicēts 20.03.2018 16:49:35 |
Zookeeper izplatītie bloķēšanas soļi:
1. Zookeeper ir mezgls ar mezgliem, līdzīgi failu direktorijai, tāpēc mēs abstrahējam slēdzeni direktorijā, zookeeper ir EPHEMERAL_SEQUENTIAL veidu mezgls, vairāki pavedieni, un, kad zookeeper izveidotais mezgls, tas palīdzēs mums sakārtot izveides secību, tāpēc direktoriji zem šī mezgla ir secīgi.
2. Iegūstiet pašreizējā direktorija mazāko mezglu, nosakiet, vai mazākais mezgls ir pašreizējais mezgls, ja tas nozīmē, ka bloķēšana ir veiksmīga, ja tā nav slēdzenes iegūšanas kļūme.
3. Kad slēdzene neizdodas, lai izvairītos no spieta efekta, jums ir jāiegūst pašreizējā mezgla iepriekšējais mezgls un pēc tam jāklausās mezgls.
4. To darot, atlaižot slēdzeni, jūs paziņosiet arī nākamajam mezglam.
 Saimnieks| Publicēts 20.03.2018 16:54:46 |
Uzziniet par zoodārza uzturētāja statusu un notikumu veidiem iepriekš.


Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com