As Mr. Kale so eloquently puts it (and of course 100% correct):

  1. If you think you need multi-threading, you’re wrong
  2. If your specification says “you need threading”, see Rule 1
  3. (For advanced users only) If you think you need multi-threading, you’re probably wrong.