python3 进程池和线程池

 #线程池导入
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)

猜你喜欢

转载自www.cnblogs.com/lilyxiaoyy/p/11041239.html