Dato un programma composto da variabili e istruzioni che modificano queste variabili e una primitiva di sincronizzazione (un monitor, mutex, java sincronizzato o C #'s lock), è possibile provare che un tale programma è thread-safe?
Esiste persino un modello formale per descrivere cose come la sicurezza del filo o le condizioni di gara?