Innehållsförteckning:
Definition - Vad betyder Atomic?
Atomic är en verktygssats för variabla java.util.concurrent.atomic-paketklasser, som hjälper till att skriva lås och väntafria algoritmer med Java-språket. En algoritm som endast kräver partiella trådar för konstant framsteg är låsfri. I en väntafri algoritm går alla trådar kontinuerligt, även i fall av trådfel eller försening. Låsa och väntafria algoritmer är också kända som icke-blockerande algoritmer. Icke-blockerande algoritmer används för process- och trådplanering på operativsystem och Java virtuella maskinnivåer.
Techopedia förklarar Atomic
Alla java.util.concurrent.atomic-paketklasser har det "atomiska" prefixet i sina namn. Det finns olika typer av atomvariabler tillgängliga i paketet java.util.concurrent.atomic, inklusive:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Ett exempel är ett scenario där tråd A håller ett lås. A kan bara komma åt och göra ändringar av variabler som skyddas av detta lås. Om tråd B håller detta lås efter A, kan bara B se A: s ändringar på variablerna skyddade av det specifika låset. Det huvudsakliga problemet med låsning uppstår när B försöker skaffa ett lås som hålls av A. I detta fall blockeras B för att vänta tills låset är tillgängligt. Icke-blockerande algoritmer löser detta problem.
Det huvudsakliga syftet med att bygga atomklasser är att implementera icke-blockerande datastrukturer och deras relaterade infrastrukturklasser. Atomklasser fungerar inte som ersättare för java.lang.Integer och relaterade klasser. De flesta java.util.concurrent-paketklasser använder atomvariabler istället för synkronisering, antingen direkt eller indirekt. Atomvariabler används också för att uppnå högre genomströmning, vilket innebär högre applikationsserverprestanda.
