def run(self): global condition, products, urls while True: if condition.acquire(): if urls.url_size() <= 20: urls.add_new_url(Spider.crawl_url(self.keyword, products)) products += 1 print("Producer(%s):deliver one, now products:%s" % (self.name, urls.url_size())) condition.notify() pass else: condition.wait() # stop if products >= 100: break condition.release()