1. 12
  1.  

  2. 5

    Also see part 2 in which he makes some recommendations on how to avoid the multithreading pitfalls.