07 进程池的同步方法和异步方法

Posted work14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07 进程池的同步方法和异步方法相关的知识,希望对你有一定的参考价值。

import time
from multiprocessing import Process,Pool
def f1(n):
    time.sleep(0.5)
    # print(n)
    return n*n
if __name__ == ‘__main__‘:
    pool = Pool(4)
    # pool.apply(f1,args=(2,))  #同步方法
    res_list = []
    for i in range(10):
        # print(‘任务%s‘%i)
        #进程池的同步方法,将任务变成了串行
        # res = pool.apply(f1,args=(i,))
        # print(res)
        #进程池的异步方法
        res = pool.apply_async(f1,args=(i,))
        print(res)
        # as_result = res.get()  #join的效果
        # print(as_result)
        res_list.append(res)
    pool.close() #锁住进程池,不再让其他的程序往里面扔新的任务了,确保没有新的任务交给进程池里面的进程
    pool.join()
    for r in res_list:
        print(r.get())
    time.sleep(2)
    #主进程运行结束,进程池里面的任务全部停止,不会等待进程池里面的任务
    print(‘主进程直接结束‘)
    p = Process(target=f1,)

  

以上是关于07 进程池的同步方法和异步方法的主要内容,如果未能解决你的问题,请参考以下文章

半同步/半异步进程池实现流程

Java中的线程同步与异步如何理解?

操作系统王道考研 p17-19 进程同步与互斥进程互斥的软硬件实现方法

python的学习之旅---进程和进程池

进程同步和进程互斥的软件硬件实现方法

进程线程同步异步