How did you get into such issues? Were there classes where you got started, or was it all on the job?<p>I think I&#x27;m not concerned so much about inheriting a codebase with lots of threading errors. It&#x27;s more about a codebase that&#x27;s almost perfectly right, but where I&#x27;m scared to change anything because I don&#x27;t have a big-picture model of the concurrency in my head..<p>Do you have any code samples I can try to learn from? For example, I&#x27;m not sure how you would move lock&#x2F;unlock pairs to the top of a file from different functions&#x2F;scopes. Unless you were doing some sort of literate programming as well?