Механизми кори класи AtomicInteger ва нақши он дар иҷрои амалиётҳои бехатари ҷараёнро шарҳ диҳед.
sobes.tech AI
Ҷавоб аз AI
Класи AtomicInteger аз пакети java.util.concurrent.atomic таъмин мекунад, ки арзиши адади бутун, ки амалҳо бар он иҷро мешаванд, атомӣ мебошанд, яъне ғайриҷудошаванда ва бидуни хатар аз ҳолати рақобат дар муҳити бисёртредӣ.
Механизми корбарӣ асос ёфтааст ба истифодаи дастурҳои пастсуръатии сахтафзор (масалан, CAS — compare-and-swap), ки кафолат медиҳанд, ки амалҳои тағир додани арзиш бидуни дахолат ва дар байни тредҳо бидуни зиддиятҳо сурат мегиранд.
Роли AtomicInteger таъмин кардани амалҳои бехатари тред барои афзоиш, камкунӣ, гузоштан ва муқоиса кардан бидуни ниёз ба истифодаи блокҳои синхронизатсияшуда ё бастаҳое, ки иҷрои кодиатро беҳтар мекунанд ва содда мекунанд.
Маслиҳат барои истифода:
import java.util.concurrent.atomic.AtomicInteger;
public class Counter {
private AtomicInteger count = new AtomicInteger(0);
public void increment() {
count.incrementAndGet(); // афзоиши атомӣ
}
public int getCount() {
return count.get();
}
}
Дар ин мисол, чанд тред метавонад бехатарона даъват кунад increment()-ро, бидуни хатар аз аз даст додани навсозии ҳисобкунак.