线程池
import time from concurrent.futures import ThreadPoolExecutor def func(n): time.sleep(2) print(n) return n*n tpool = ThreadPoolExecutor(max_workers=5) t_lst = [] for i in range(20): t = tpool.submit(func,i) t_lst.append(t) tpool.shutdown() print('主线程') for t in t_lst: print('结果:',t.result())
import time from concurrent.futures import ThreadPoolExecutor def func(n): time.sleep(2) print(n) return n*n tpool = ThreadPoolExecutor(max_workers=5) tpool.map(func,range(20))
import time from concurrent.futures import ThreadPoolExecutor def func(n): time.sleep(2) print(n) return n*n tpool = ThreadPoolExecutor(max_workers=5) t_lst = [] for i in range(20): t = tpool.submit(func,i) t_lst.append(t) # tpool.shutdown() print('主线程') for t in t_lst: print('结果:',t.result())
import time from concurrent.futures import ThreadPoolExecutor def func(n): time.sleep(2) print(n) return n*n def call_back(m): print('结果是%d'%m.result()) tpool = ThreadPoolExecutor(max_workers=5) for i in range(20): tpool.submit(func,i).add_done_callback(call_back)