Junior — Middle
Əməliyyatın yalnız bir dəfə həyata keçirilməsini və onun təkrarlanmasının qarşısını almaq üçün necə təmin etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Əməliyyatın yalnız bir dəfə yerinə yetirilməsini təmin etmək və onun təkrarlanmasının qarşısını almaq üçün müxtəlif yanaşmalar istifadə oluna bilər:
-
İş parçacığı sinxronizasiyası:
synchronizedaçar sözündən və ya kilidlərdən (Lock) istifadə edərək əməliyyatın eyni vaxtda başlamasının qarşısını almaq.
-
Vəziyyət bayrağı:
- Birinci işə salınmada qurulan və icra edilmədən əvvəl yoxlanan boolean bayrağı daxil etmək.
-
AtomicBooleanvə yavolatiledəyişənlərin istifadəsi:- Əməliyyatın vəziyyətini çox iş parçacığı mühitində təhlükəsiz şəkildə idarə etmək üçün.
-
"Singleton" və ya tələskənliklə başlatma idioması:
- Məsələn,
java.util.concurrent.atomic.AtomicBooleanistifadə edərək:
- Məsələn,
import java.util.concurrent.atomic.AtomicBoolean;
public class OneTimeOperation {
private final AtomicBoolean executed = new AtomicBoolean(false);
public void execute() {
if (executed.compareAndSet(false, true)) {
// Yalnız bir dəfə yerinə yetirilməsi lazım olan əməliyyat kodu
System.out.println("Əməliyyat yerinə yetirildi");
} else {
System.out.println("Əməliyyat artıq əvvəlcədən yerinə yetirilib");
}
}
}
Bu şəkildə, əməliyyat yalnız bir dəfə yerinə yetiriləcək, hətta bir neçə iş parçacığı onu eyni vaxtda başlatmağa çalışsa da.