Junior — Middle
Bir işlemin yalnızca bir kez gerçekleştirilmesini nasıl sağlayabilir ve tekrarını nasıl önleyebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir işlemin yalnızca bir kez gerçekleştirilmesini sağlamak ve tekrarını önlemek için birkaç yaklaşım kullanılabilir:
-
İş parçacığı senkronizasyonu:
synchronizedanahtar kelimesi veya kilitler (Lock) kullanmak, işlemin aynı anda başlatılmasını engellemek için.
-
Durum bayrağı:
- İşlemin ilk başlatıldığında ayarlanan ve yürütmeden önce kontrol edilen bir boolean bayrağı tanıtmak.
-
AtomicBooleanveyavolatiledeğişkenlerin kullanımı:- İşlemin durumunu çok iş parçacıklı ortamda güvenli bir şekilde kontrol etmek için.
-
"Singleton" kalıbı veya tembel başlatma:
- Örneğin,
java.util.concurrent.atomic.AtomicBooleankullanarak:
- Örneğin,
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ızca bir kez çalışması gereken işlem kodu
System.out.println("İşlem gerçekleştirildi");
} else {
System.out.println("İşlem daha önce gerçekleştirildi");
}
}
}
Bu şekilde, işlem yalnızca bir kez çalıştırılır, hatta birden fazla iş parçacığı aynı anda başlatmaya çalışsa bile.