Junior — Middle
Мақсади ва истифодаи амалҳои атомӣ дар барномасозӣ чист?
sobes.tech AI
Ҷавоб аз AI
Операцияҳои атомӣ дар барномасозӣ — ин амалҳое мебошанд, ки ё пурра иҷро мешаванд ё ҳеҷ гоҳ, бе ҳолатҳои миёна, ки дигар равандҳо мебинанд. Онҳо барои таъмини кори дуруст дар муҳитҳои бисёрраванда муҳиманд, ки дар он чанд раванд метавонанд маълумоти умумиро ҳамзамон тағир диҳанд.
Истифодаи амалҳои атомӣ имкон медиҳад, ки ҳолатҳои рақобат (race conditions) пешгирӣ шаванд ва мутобиқатии маълумот бидуни истифодаи бастаҳои вазнин таъмин карда шавад.
Дар Java, синфҳои пакети java.util.concurrent.atomic мавҷуданд, масалан, AtomicInteger:
import java.util.concurrent.atomic.AtomicInteger;
public class Counter {
private AtomicInteger count = new AtomicInteger(0);
public void increment() {
count.incrementAndGet(); // афзоиши атомӣ ба 1
}
public int getCount() {
return count.get();
}
}
Ин ҷо, усули incrementAndGet() кафолат медиҳад, ки афзоиши ҳисобкунак атомӣ хоҳад буд, ҳатто агар чанд раванд онро ҳамзамон даъват кунанд.