Tartalomjegyzék:
Meghatározás - Mit jelent a szinkronizálás?
A szinkronizálás két vagy több szál egyidejű végrehajtása, amelyek megosztják a kritikus erőforrásokat. A szálakat szinkronizálni kell a kritikus erőforrás-felhasználási konfliktusok elkerülése érdekében. Ellenkező esetben konfliktusok merülhetnek fel, amikor a párhuzamosan futó szálak megkísérlik egy közös változó módosítását egyidejűleg.
A Techopedia magyarázza a szinkronizálást
A szinkronizálás tisztázása érdekében vegye figyelembe a következő példát: három szálat - A, B és C - egyidejűleg hajtanak végre, és hozzá kell férniük egy kritikus erőforráshoz, Z. A Z elérésekor a konfliktusok elkerülése érdekében az A, B és C szálakat szinkronizálni kell. . Így amikor A hozzáfér Z-hez, és B szintén megpróbál hozzáférni Z-hez, B biztonságtechnikai intézkedésekkel el kell kerülni Z hozzáférését Z-ig, amíg A befejezi a mûveletet és kijön Z-bõl.
A Java-ban két szinkronizálási stratégiát használnak a szál-interferencia és a memória-konzisztencia hibák megelőzésére:
- Szinkronizált módszer: a szinkronizált kulcsszót tartalmazza deklarációjában. Amikor egy szál szinkronizált módszert idéz elő, akkor a szinkronizált módszer automatikusan megszerzi az adott módszer objektumának belső zárját és elengedi azt, amikor a módszer visszatér, még akkor is, ha a visszatérést nem begyűjtött kivétel okozta.
- Szinkronizált nyilatkozat: Bejelenti a szinkronizált kódblokkot. A szinkronizált módszerekkel ellentétben a szinkronizált utasításoknak meg kell határozniuk azokat a objektumokat, amelyek a belső zárolást biztosítják. Ezek az állítások hasznosak a finom szemcsés szinkronizálás párhuzamosságának javításában, mivel lehetővé teszik a szükségtelen blokkolás elkerülését.