Sobes.tech
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() кафолат медиҳад, ки афзоиши ҳисобкунак атомӣ хоҳад буд, ҳатто агар чанд раванд онро ҳамзамон даъват кунанд.