Obsah:
Definícia - Čo znamená atómová látka?
Atomic je súprava nástrojov tried premenných java.util.concurrent.atomic, ktoré pomáhajú pri písaní zámkových a čakacích algoritmov v jazyku Java. Algoritmus vyžadujúci iba čiastočné vlákna pre neustále napredovanie je bez zámku. V algoritme bez čakania čakajú všetky vlákna postupovanie nepretržite, dokonca aj v prípade zlyhania alebo oneskorenia vlákna. Algoritmy blokovania a čakania sú známe aj ako neblokovacie algoritmy. Bez blokovacie algoritmy sa používajú na plánovanie procesov a vlákien na úrovni operačného systému a virtuálneho stroja Java.
Techopedia vysvetľuje atómovú
Všetky triedy balíkov java.util.concurrent.atomic majú vo svojich názvoch predponu „atómový“. Balík java.util.concurrent.atomic obsahuje rôzne typy atómových premenných vrátane:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Príkladom je scenár, v ktorom vlákno A obsahuje zámok. A je schopný pristupovať a meniť iba premenné chránené týmto zámkom. Ak vlákno B drží tento zámok po A, potom iba B môže vidieť zmeny A na premenných chránených týmto konkrétnym zámkom. Hlavný problém so zamknutím nastane, keď sa B pokúsi získať zámok držaný A. V tomto prípade je B zablokovaný, aby čakal, až bude zámok dostupný. Tento problém vyriešia neblokovacie algoritmy.
Hlavným účelom výstavby atómových tried je implementácia neblokujúcich dátových štruktúr a ich súvisiacich tried infraštruktúry. Atómové triedy neslúžia ako náhrady za java.lang.Integer a súvisiace triedy. Väčšina tried java.util.concurrent balíkov používa namiesto synchronizácie, priamo alebo nepriamo, atómové premenné. Atómové premenné sa používajú aj na dosiahnutie vyššej priepustnosti, čo znamená vyšší výkon aplikačného servera.