Junior — Middle
Poți oferi un exemplu de situație în Java în care se utilizează blocarea pesimistă pentru a preveni conflictele la accesarea datelor?
sobes.tech AI
Răspuns de la AI
Blocarea pesimistă în Java este adesea utilizată atunci când trebuie garantat că datele nu vor fi modificate de alte fire în timpul executării unei operațiuni critice. De exemplu, lucrând cu o bază de date prin JPA/Hibernate, se poate folosi metoda lock() cu tipul de blocare PESSIMISTIC_WRITE pentru a preveni modificările simultane ale aceleiași înregistrări:
EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();
// Obțineți obiectul cu blocare de scriere
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);
// Efectuați modificări
entity.setValue(newValue);
// Salvați modificările
em.persist(entity);
tx.commit();
În acest exemplu, până când tranzacția nu se finalizează, alte tranzacții care încearcă să obțină blocarea pe aceeași înregistrare vor aștepta, ceea ce previne conflictele și asigură integritatea datelor.