def _prepare_threads(self):
self._threads = []<EOL>for i in range(self.num_workers):<EOL><INDENT>t = threading.Thread(target=self._fetch)<EOL>t.setDaemon(True)<EOL>t.start()<EOL>self._threads.append(t)<EOL><DEDENT>
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).