&gt;Seems like you have to trick the threads in the correct sequence in order to introduce deadlocks<p>This manually &quot;trickery&quot; you are introducing is you intentionally replicating potential control flows that can (and will) happen in real life.  You should come out of this game with a new&#x2F;renewed paranoia about multithreaded programming and how seemingly safe code may not necessarily be so.