Съдържание:
Определение - Какво означава Atomic?
Atomic е инструментариум от променливи класове пакети java.util.concurrent.atomic, които помагат при писането на алгоритми за заключване и без изчакване с езика на Java. Алгоритъм, изискващ само частични нишки за постоянен напредък, не е заключен. При алгоритъм за изчакване всички нишки напредват непрекъснато, дори в случаите на повреда или забавяне на нишката. Алгоритмите за заключване и без изчакване също са известни като алгоритми за блокиране. Неблокиращите алгоритми се използват за планиране на процеси и нишки на ниво операционна система и виртуална машина на Java.
Техопедия обяснява Atomic
Всички класове пакети java.util.concurrent.atomic имат в своите имена „атомен“ префикс. Има различни видове атомни променливи, налични в пакета java.util.concurrent.atomic, включително:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
Пример е сценарий, при който нишка A държи заключване. A може да има достъп и да променя само променливи, защитени от това заключване. Ако нишка B държи това заключване след A, тогава само B може да вижда промените на A на променливите, защитени от това конкретно заключване. Основният проблем със заключването възниква, когато B се опита да придобие заключване, задържано от A. В този случай B се блокира, за да изчака, докато блокировката е налична. Неблокиращите алгоритми решават този проблем.
Основната цел зад изграждането на атомни класове е прилагането на неблокиращи структури от данни и свързаните с тях инфраструктурни класове. Атомните класове не служат като заместители на java.lang.Integer и сродните класове. Повечето класове пакети java.util.concurrent използват атомни променливи вместо синхронизация, пряко или косвено. Атомните променливи също се използват за постигане на по-висока производителност, което означава по-висока производителност на сървъра на приложения.
