code: def _prepare_threads(self):
          
          self._threads = []
          for i in range(self.num_workers):
              t = threading.Thread(target=self._fetch)
              t.setDaemon(True)
              t.start()
              self._threads.append(t)
docs: Threads are created only when get_project is called, and terminate
          before it returns. They are there primarily to parallelise I/O (i.e.
          fetching web pages).