Sobes.tech
Junior — Middle

Tudsz példát mondani egy Java helyzetre, amikor pesszimista zárolást alkalmaznak az adatokhoz való hozzáférés konfliktusainak megelőzése érdekében?

sobes.tech MI

Válasz az MI-től

A pesszimista zárolás Java-ban gyakran használatos, amikor garantálni kell, hogy az adatok más szálak által ne legyenek módosítva kritikus művelet végrehajtása közben. Például, JPA/Hibernate segítségével adatbázissal dolgozva, a lock() metódus PESSIMISTIC_WRITE zárolási típussal való használatával megakadályozható ugyanazon rekord egyidejű módosítása:

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

// Objektum zárolása írási zárolással
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);

// Módosítások végrehajtása
entity.setValue(newValue);

// Módosítások mentése
em.persist(entity);
tx.commit();

Ebben a példában, amíg a tranzakció nem fejeződik be, más tranzakciók, amelyek ugyanarra a rekordra próbálnak zárolást szerezni, várakozni fognak, ez megelőzi a konfliktusokat és biztosítja az adatok integritását.