Vuoi spiegare l’ordine di blocco?

Ho imparato che dovrei sbloccare l’ordine inverso per bloccare l’ordine. Per esempio.

A.lock(); B.lock(); B.unlock(); A.unlock(); 

Ma cosa succede se mi piace così:

 A.lock(); B.lock(); A.unlock(); B.unlock(); 

Provo a creare uno scenario di deadlock, ma se blocco sempre A prima di B, non so come potrebbe verificarsi un deadlock. Mi aiuteresti?