python3使用multiprocessing模块实现多进程(附代码例子)
python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing
例子介绍:
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多进程