#线程池导入
import os
import time
from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import threading
import random
def f(n):
time.sleep(random.randint(1,3))
# print(n)
# print("进程(%s) %s的平方: %s" % (os.getpid(), n, n*n))
print("线程(%s) %s的平方: %s" % (threading.current_thread().getName(), n, n*n))
return n*n
if __name__ == '__main__':
pool = ThreadPoolExecutor(max_workers=5)
# pool = ProcessPoolExecutor(max_workers=5)
ret_list = []
for i in range(10):
ret = pool.submit(f,i) #异步提交任务,f函数名称或者方法名称,i给f函数的参数
# print(ret.result()) #join
ret_list.append(ret)
# pool.shutdown() #锁定线程池,不让新任务再提交进来了.轻易不用
for i in ret_list:
print(i.result())
# 线程池导入
import time
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
import random
def f(n):
time.sleep(random.randint(1, 3))
return n * n
def call_back(m):
print(m)
print(m.result())
if __name__ == '__main__':
pool = ThreadPoolExecutor(max_workers=5)
pool.submit(f,2).add_done_callback(call_back)