Add solutions and unit tests for chapter 16: Threads and Locks