Innholdsfortegnelse:
Definisjon - Hva betyr Atomic?
Atomic er et verktøysett for variabler java.util.concurrent.atomic-pakkeklasser, som hjelper deg med å skrive lås og ventefrie algoritmer med Java-språket. En algoritme som bare krever delvise tråder for konstant fremgang, er låsefri. I en ventefri algoritme går alle tråder kontinuerlig, selv i tilfeller av trådfeil eller forsinkelse. Låse- og ventefrie algoritmer er også kjent som ikke-blokkerende algoritmer. Ikke-blokkerende algoritmer brukes til prosess- og trådplanlegging på operativsystem- og Java-virtuelle maskinnivå.
Techopedia forklarer Atomic
Alle java.util.concurrent.atomic-pakningsklasser har det "atomiske" prefikset i navnene. Det er forskjellige typer atomvariabler som er tilgjengelige i java.util.concurrent.atomic-pakken, inkludert:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Et eksempel er et scenario der tråden A holder en lås. A er bare i stand til å få tilgang til og gjøre endringer i variabler beskyttet av denne låsen. Hvis tråd B holder denne låsen etter A, kan bare B se A's endringer på variablene beskyttet av den aktuelle låsen. Hovedproblemet med låsing oppstår når B prøver å skaffe seg en lås som er i A. I dette tilfellet blokkeres B for å vente til låsen er tilgjengelig. Ikke-blokkerende algoritmer løser dette problemet.
Hovedformålet bak å bygge atomklasser er å implementere ikke-blokkerende datastrukturer og tilhørende infrastrukturklasser. Atomklasser fungerer ikke som erstatning for java.lang.Integer og relaterte klasser. De fleste java.util.concurrentpakkeklasser bruker atomvariabler i stedet for synkronisering, enten direkte eller indirekte. Atomvariabler brukes også for å oppnå høyere gjennomstrømning, noe som betyr høyere ytelse for applikasjonsserver.
