线程池:ThreadPoolExecutor
#!/usr/bin/env python # -*- encoding: utf-8 -*- from concurrent.futures import ThreadPoolExecutor as ConThreadPoolExecutor, as_completed from loguru import logger class Hello(): def __init__(self): self.pool_num = 4 def print_hello(self, num): for i in range(num): logger.info("{}-{}".format(i, "test" + str(i))) # i = 0 # while i <= num: # logger.info("{}-{}".format(i, "test" + str(i))) # i+=1 def start_run(self): tp = ConThreadPoolExecutor(max_workers=self.pool_num) tp.submit(self.print_hello, 100) tp.shutdown(wait=True) logger.info('end') def start_run2(self): tp = ConThreadPoolExecutor(max_workers=self.pool_num) nums = [2, 1, 3] all_task = [tp.submit(self.print_hello, num) for num in nums] for future in as_completed(all_task): data = future.result() print("in main: get page {}s success".format(data)) logger.info('end') if __name__ == '__main__': obj = Hello() obj.start_run()