Itthon Fejlesztés Mi az atoma a javaban? - meghatározás a techopedia alapján

Mi az atoma a javaban? - meghatározás a techopedia alapján

Tartalomjegyzék:

Anonim

Meghatározás - Mit jelent az atom?

Az Atomic a java.util.concurrent.atomic változó csomagosztályok eszközkészlete, amelyek elősegítik a zárolási és várakozási nélküli algoritmusok írását a Java nyelven. Az algoritmus, amely csak részleges szálakat igényel az állandó haladáshoz, zárolásmentes. Várakozás nélküli algoritmusban az összes szál folyamatosan halad előre, még a szál meghibásodása vagy késése esetén is. A zárolási és várakozási nélküli algoritmusokat blokkolás nélküli algoritmusoknak is nevezik. A nem blokkoló algoritmusokat a folyamat- és szálütemezéshez használják az operációs rendszer és a Java virtuális gép szintjén.

A Techopedia magyarázza az Atomicot

Az összes java.util.concurrent.atomic csomagosztály neve "atom" előtaggal rendelkezik. A java.util.concurrent.atomic csomagban különféle típusú atomváltozók érhetők el, ideértve a következőket:

  • AtomicBoolean
  • AtomicInteger
  • AtomicIntegerArray
  • AtomicIntegerFieldUpdater
  • AtomicLong
  • AtomicLongArray
  • AtomicLongFieldUpdater
  • AtomicReference
A Java nyelven a szinkronizálás koordinálja a megosztott szálmezőkhöz való hozzáférést, és csak a zárakat tartó szálak számára teszi lehetővé a zárral védett változók elérését és módosítását. Ez a szál módosítása látható a következő szálra, de csak akkor, amikor a szál elengedi a zárat.

Példa egy forgatókönyv, ahol az A szál zárral rendelkezik. Az A csak az ezzel a zárral védett változók elérésére és módosítására képes. Ha a B szál ezt a zárat tartja A után, akkor csak B láthatja az A változásait az adott zárral védett változóknál. A reteszeléssel kapcsolatos fő probléma akkor fordul elő, amikor B megkísérli megszerezni az A kezében lévő reteszt. Ebben az esetben a B blokkolva van, hogy várjon, amíg a retesz rendelkezésre áll. A nem blokkoló algoritmusok megoldják ezt a problémát.


Az atomosztályok építésének fő célja a nem blokkoló adatszerkezetek és a hozzájuk kapcsolódó infrastruktúra osztályok megvalósítása. Az atomi osztályok nem helyettesítik a java.lang.Integer és a kapcsolódó osztályokat. A legtöbb java.util.concurrent csomagosztály közvetlenül vagy közvetetten szinkronizálás helyett atomváltozókat használ. Atomi változókat is használnak a nagyobb átviteli sebesség elérésére, ami magasabb alkalmazáskiszolgáló teljesítményt jelent.

Ezt a meghatározást a Java kontextusában írták meg
Mi az atoma a javaban? - meghatározás a techopedia alapján