Temo che tu debba essere molto preciso nella tua definizione di controllo ottimistico della concorrenza. Nella definizione classica di Bernstein, Goodman e Hadzilacos, il controllo della concorrenza ottimistica consente ai thread di acquisire "virtualmente" i blocchi, procedere con gli aggiornamenti e quindi verificare la violazione della coerenza quando la transazione tenta di eseguire il commit. Se si verifica una violazione di coerenza, la transazione viene annullata e inoltrata nuovamente. In base a questa definizione, non è chiaro come possa verificarsi un deadlock, poiché i thread non vengono "mai" bloccati in attesa di un blocco. La definizione classica di controllo della concorrenza ottimistica non è facile da implementare nella pratica. Tuttavia, il recente lavoro sulla memoria transazionale hardware sta aprendo alcune possibilità e aprendo una prospettiva su questo vecchio problema.