Junior — Middle
Puoi fare un esempio di una situazione in Java in cui viene utilizzato il blocco pessimista per prevenire conflitti nell'accesso ai dati?
sobes.tech AI
Risposta dell'AI
Il blocco pessimista in Java viene spesso utilizzato quando è necessario garantire che i dati non vengano modificati da altri thread durante l'esecuzione di un'operazione critica. Ad esempio, lavorando con un database tramite JPA/Hibernate, si può usare il metodo lock() con il tipo di blocco PESSIMISTIC_WRITE per prevenire modifiche simultanee dello stesso record:
EntityManager em = ...;
EntityTransaction tx = em.getTransaction();
tx.begin();
// Ottenere l'oggetto con blocco di scrittura
MyEntity entity = em.find(MyEntity.class, id, LockModeType.PESSIMISTIC_WRITE);
// Apportare modifiche
entity.setValue(newValue);
// Salvare le modifiche
em.persist(entity);
tx.commit();
In questo esempio, finché la transazione non termina, altre transazioni che cercano di ottenere il blocco sullo stesso record attenderanno, prevenendo conflitti e garantendo l'integrità dei dati.