Junior — Middle
Můžeš uvést příklad situace v Java, kdy se používá pesimistické zamykání k prevenci konfliktů při přístupu k datům?
sobes.tech AI
Odpověď od AI
Pesimistické uzamčení v Java se často používá, když je třeba zajistit, že data nebudou během provádění kritické operace změněna jinými vlákny. Například při práci s databází přes JPA/Hibernate lze použít metodu lock() s typem uzamčení PESSIMISTIC_WRITE, aby se zabránilo současným změnám stejného záznamu:
EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();
// Získání objektu s uzamčením pro zápis
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);
// Provádění změn
entity.setValue(newValue);
// Uložení změn
em.persist(entity);
tx.commit();
V tomto příkladu budou ostatní transakce, které se pokusí získat zámek na stejný záznam, čekat, dokud nebude transakce dokončena, což zabrání konfliktům a zajistí integritu dat.