快速实现python多进程和多线程(标准库)
首先要说明python的threading类是单核多线程,如果要用到多核,则需要用到multiprocessing类。
多核多进程并发
首先定义一个测试函数,这里定义为一个死循环,然后控制死循环运行时间的函数。
def job(lastingTime): # 测试多进程
a = time.time()
while True:
if time.time() - a > lastingTime:
print(time.time() - a)
break
再提一句
‘’’
在Windows上要想使用进程模块,就必须把有关进程的代码写在当前.py文件的if name == ‘main’ :语句的下面,
才能正常使用Windows下的进程模块。Unix/Linux下则不需要。
‘’’
运用多进程
if __name__ == '__main__':
useCount = mp.cpu_count() - 3 # cpu核数
pool = mp.Pool(useCount) # 创建几个进程
lastTime = [10] * useCount # map对象,这里是秒数
result = pool.map(job, lastTime)
pool.close() # 关闭进程池,不再接受新的进程
pool.join() # 主进程阻塞等待子进程的退出
这样可以看到使用情况