Sobes.tech
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:

  1. İş parçacığı senkronizasyonu:

    • synchronized anahtar kelimesi veya kilitler (Lock) kullanmak, işlemin aynı anda başlatılmasını engellemek için.
  2. Durum bayrağı:

    • İşlemin ilk başlatıldığında ayarlanan ve yürütmeden önce kontrol edilen bir boolean bayrağı tanıtmak.
  3. AtomicBoolean veya volatile değişkenlerin kullanımı:

    • İşlemin durumunu çok iş parçacıklı ortamda güvenli bir şekilde kontrol etmek için.
  4. "Singleton" kalıbı veya tembel başlatma:

    • Örneğin, java.util.concurrent.atomic.AtomicBoolean kullanarak:
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.