Indholdsfortegnelse:
Definition - Hvad betyder Atom?
Atomic er et værktøjssæt af variable java.util.concurrent.atomic-pakningsklasser, som hjælper med at skrive lås og ventefri algoritmer med Java-sproget. En algoritme, der kun kræver delvise tråde til konstant fremgang, er låsfri. I en ventefri algoritme skrider alle tråde kontinuerligt frem, selv i tilfælde af trådfejl eller forsinkelse. Lås og ventefri algoritmer er også kendt som ikke-blokerende algoritmer. Ikke-blokerende algoritmer bruges til proces- og trådplanlægning på operativsystem- og Java-virtuelle maskiniveau.
Techopedia forklarer Atomic
Alle java.util.concurrent.atomic-pakningsklasser har det "atomiske" præfiks i deres navn. Der er forskellige typer atomvariabler, der er tilgængelige i java.util.concurrent.atomic-pakken, herunder:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Et eksempel er et scenarie, hvor tråd A holder en lås. A er kun i stand til at få adgang til og foretage ændringer i variabler, der er beskyttet af denne lås. Hvis tråd B holder denne lås efter A, kan kun B se A's ændringer på variablerne, der er beskyttet af den pågældende lås. Det største problem med låsning opstår, når B forsøger at erhverve en lås, der er i A. I dette tilfælde blokeres B for at vente, indtil låsen er tilgængelig. Ikke-blokerende algoritmer løser dette problem.
Hovedformålet bag opbygning af atomklasser er at implementere ikke-blokerende datastrukturer og deres relaterede infrastrukturklasser. Atomklasser fungerer ikke som erstatning for java.lang.Integer og beslægtede klasser. De fleste java.util.concurrent-pakkeklasser bruger atomvariabler i stedet for synkronisering, enten direkte eller indirekte. Atomvariabler bruges også til at opnå større gennemstrømning, hvilket betyder højere applikationsserverydelse.