python多进程并行代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多进程并行代码相关的知识,希望对你有一定的参考价值。
from multiprocessing import Process import sys, os import time def timetask(string): while True: print(string) def works(func, arg, worknum): proc_record = [] for i in range(worknum): p = Process(target = func, args = (i,)) p.start() proc_record.append(p) for p in proc_record: p.join() if __name__ == \'__main__\': arg = 5 procs = 4 works(timetask, arg, procs)
效果图【未加锁,会发现数字1没出现,进程间资源抢夺导致】:
优化之后效果:
代码:
from multiprocessing import Process import sys, os import time from threading import Lock def timetask(string): mutex.acquire() while True: print(string) if mutex.locked(): mutex.release() mutex = Lock() def works(func, arg, worknum): proc_record = [] for i in range(worknum): p = Process(target = func, args = (i,)) p.start() proc_record.append(p) for p in proc_record: p.join() if __name__ == \'__main__\': arg = 5 procs = 4 works(timetask, arg, procs)
以上是关于python多进程并行代码的主要内容,如果未能解决你的问题,请参考以下文章