Y Y524资源站

python3使用multiprocessing模块实现多进程(附代码例子)

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing

2023-05-29 1072 次阅读 编程教程

例子介绍:

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing。
multiprocessing是python中一个操作、管理进程的包,multi即多功能之意,即multiprocessing包中几乎包含了进程有关的所有子模块。借助这个包,可以轻松完成从单进程到并发执行的转换。

import time,random
from multiprocessing import Pool
from multiprocessing import cpu_count

def runProc(name):
    """
    提供给多进程调用
    """
    import os, random, signal
    pid = os.getpid()
    print(pid)

    os.popen('taskkill.exe /pid:%s /F' % pid)
    print("杀死   ")
    print("子进程 %s(%s)-开始" % (name, pid))
    time.sleep(random.randint(0,20))
    print("子进程 %s(%s)-结束" % (name, pid))

def multiProcess():
    """多进程"""
    import os
    cpus = 1 * cpu_count()
    lst_grp = range(0, 9000000)
    p = Pool(2)
    for i in range(0, 9000000):
        p.apply_async(runProc, args=(lst_grp[i],))
        # print("执行多线程",i)
    p.close()
    p.join()
    print("多进程作业已完成")

def oneProcess():
    """
    启动一个进程
    """
    from multiprocessing import Process
    import os
    p = Process(target=runProc, args=("进程名称",))
    print("将启动一个进程")
    p.start()
    p.join()
    time.sleep(5)
    print("一个进程结束")

if __name__ == "__main__":
    multiProcess()  # 多进程
    # oneProcess()  # 启动一个进程
python例子 multiprocessing python多进程