python多进程
时间: 2023-07-06 22:24:13 浏览: 110
Python多进程可以利用多核CPU资源,提高程序的运行效率。Python提供了multiprocessing模块来支持多进程编程。
在multiprocessing模块中,可以通过Process类来创建进程。创建进程的方式与创建线程的方式类似,只需要传入一个函数和参数即可。例如:
```
import multiprocessing
def func(name):
print('Hello,', name)
if __name__ == '__main__':
p = multiprocessing.Process(target=func, args=('world',))
p.start()
p.join()
```
在上面的例子中,创建了一个进程p,target参数指定进程要执行的函数,args参数指定要传递给函数的参数。在主进程中,通过p.start()启动进程,通过p.join()等待进程执行完毕。
需要注意的是,由于多进程环境下每个进程都有自己独立的内存空间,因此进程之间无法直接共享数据。如果需要在多个进程之间共享数据,可以使用multiprocessing模块提供的共享内存和队列等数据结构。
共享内存可以通过multiprocessing模块中的Value和Array类实现,队列可以通过multiprocessing模块中的Queue类实现。例如:
```
import multiprocessing
def func(value, array, queue):
value.value = 1
array[0] = 2
queue.put('hello')
if __name__ == '__main__':
value = multiprocessing.Value('i', 0)
array = multiprocessing.Array('i', range(10))
queue = multiprocessing.Queue()
p = multiprocessing.Process(target=func, args=(value, array, queue))
p.start()
p.join()
print(value.value)
print(array[:])
print(queue.get())
```
在上面的例子中,通过Value和Array类创建共享内存,通过Queue类创建共享队列。在子进程中,修改value和array的值,向queue中放入一个字符串。在主进程中,打印value和array的值,从queue中取出字符串并打印。
阅读全文