Sobes.tech
Junior — Middle

Java'da veriye erişimde çatışmaları önlemek için kötümser kilitlemenin kullanıldığı bir duruma örnek verebilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da kötümser kilitleme, kritik bir işlem sırasında verilerin diğer akışlar tarafından değiştirilmemesini sağlamak için sıklıkla kullanılır. Örneğin, JPA/Hibernate aracılığıyla bir veritabanı ile çalışırken, aynı kaydın eşzamanlı değişimini önlemek için lock() metodunu PESSIMISTIC_WRITE kilit türü ile kullanabilirsiniz:

EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();

// Yazma kilidi ile nesne alın
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);

// Değişiklikleri yap
entity.setValue(newValue);

// Değişiklikleri kaydet
em.persist(entity);
tx.commit();

Bu örnekte, işlem tamamlanana kadar, aynı kayda kilit almaya çalışan diğer işlemler bekleyecek, bu da çatışmaları önler ve veri bütünlüğünü sağlar.