Kulcsszó szinkronizált java, java blog csak mintegy

  • Védi a kód szegmens, amely csak egyetlen szál egy időben elvégezni ezt a kódot.
  • Lock felszabadítással szálak próbálja meg a biztonsági kódot szegmensben.
  • Minden feltétel célja vezérli az áramlási lépett egy biztonságos kódot szegmensben, de amelyek még nincsenek abban a helyzetben, hogy a munka elvégzésére.

Lock és állapota interfészek kerültek a Java SE 5.0, így a programozók a magas fokú ellenőrzés zár. Azonban a legtöbb esetben akkor nem kell ilyen ellenőrzés, és akkor egy mechanizmus épül Java nyelvű média.

Amióta a 1.0 verzió, minden Java objektum belső zár. Ha egy metódus deklarált a kulcsszó szinkronizált, az objektum zár védelme érdekében az egész eljárás. Ez azt jelenti, hogy él ezzel a módszerrel, a patak, hogy rögzítse a belső zár objektum.

Más szóval, a következő:

Mint látható, a használata a szinkronizált kulcsszót generál sokkal tömörebb kódot. Persze, hogy megértsük, akkor tudnia kell, hogy minden tárgy olyan belső zár, és hogy a zár egy belső állapot.

Lock felszabadítással szálak próbálja meg egy szinkronizált módszert. Feltételek szabályozza az áramlás okozta várakozás ().

Szinkronizált eljárások viszonylag egyszerű. Azonban a kezdő programozók gyakran gond van a feltételekkel.

Is megengedett, hogy állapítsa meg a statikus módszerek szinkronizálva. Amikor hívja ezt a módszert, hogy megragadja a belső zár a kapcsolódó osztály objektum.

Például, ha a Bank osztály egy statikus szinkronizált módszert, akkor Bank.class zár objektum zárolva van, ha ez az úgynevezett. Ennek eredményeképpen nem okozhat semmilyen más patak, és nincs más szinkronizált statikus módszer annak az osztálynak.

Reteszelések és feltételek bizonyos korlátai:

  • Nem lehet megállítani az áramlást, amely igyekszik megragadni a zárat.
  • Nem adhatja meg a timeout, szeretnék megszerezni a zárat.
  • Mivel egyetlen feltétel a zárat lehet hatékony.

Mit kell használni a kódban - Lock és állapota tárgyak vagy szinkronizált módszerek? Itt vannak a javaslatok:

  • Ez jobb, hogy nem használ Lock / állapotú, vagy kulcsszó szinkronizált. Sok esetben, akkor az egyik java.util.concurrent csomag mechanizmusok, melyek révén a munkát a blokkoló az Ön számára.
  • Ha a szinkronizált kulcsszót a helyzet, biztos, hogy használni. Írsz kevesebb kód, és akkor kevésbé valószínű, hogy hibáznak. A program az alábbi ábrán látható egy példát mutat a bank, alapján végrehajtott szinkronizált módszereket.
  • Használja Lock / állapotú, ha tényleg szükség van az extra funkciókat ezeket a struktúrákat.