When to Lock a Thread, by Dawgstudent.**