Kazalo:
Opredelitev - Kaj pomeni sinhronizacija?
Sinhronizacija v okviru .NET je postopek, ki vključuje usklajevanje izvajanja več niti, da se zagotovi želeni izid, ne da bi se pokvarili skupni podatki in preprečili morebitni zastoji in dirkaški pogoji.
Sinhronizacija se zgodi tudi med omrežnimi vozlišči, da se zagotovi pravilno prejemanje in prenos podatkovnih tokov in preprečevanje trka podatkov. Običajno uporablja taktni signal, ki se oddaja v zaporedju s pretokom podatkov za vzdrževanje pravilnega časovnega signala.
Techopedia razlaga Sinhronizacijo
Obstajata dve vrsti sinhronizacije: sinhronizacija podatkov in sinhronizacija procesov:
- Sinhronizacija procesov: Hkratna izvedba več niti ali procesov, da dosežejo stisk roke, tako da izvedejo določeno zaporedje dejanj. Zaklepanje, mutex in semaforji so primeri sinhronizacije procesov.
- Sinhronizacija podatkov: vključuje vzdrževanje podatkov za ohranjanje več kopij podatkov, ki so med seboj skladne ali za ohranjanje integritete podatkov. Na primer, podvajanje baze podatkov se uporablja za ohranjanje več kopij podatkov, sinhroniziranih s strežniki baz podatkov, ki shranjujejo podatke na različnih lokacijah.
Sinhronizacija je osnova za izvedbo več niti asinhrono v večserijski aplikaciji. Zagotavlja sredstva za doseganje skupne rabe virov, kot so obdelava datotek, omrežne povezave in pomnilnik z usklajevanjem niti in procesov, da se prepreči korupcija podatkov.
Izraz se uporablja v okviru več-prebranih aplikacij, kjer je treba nadzorovati vire, ki se delijo v več niti, kar sicer lahko privede do nepredvidljivega in nezaželenega rezultata. Okvir .NET zagotavlja primitivne sinhronizacijske aplikacije z uporabo večnamenskih aplikacij, ki se nadzirajo brez kakršnih koli dirkalnih pogojev.
Sinhronizacija je zasnovana tako, da sodeluje in zahteva, da vsaka nit sledi mehanizmu sinhronizacije, preden dostopa do zaščitenih virov za dosledne rezultate. Zaklepanje, signalizacija, lahke vrste sinhronizacije, spinwait in blokirane operacije so mehanizmi, povezani s sinhronizacijo v .NET.
