python3.7 多进程 代码示例
时间: 2024-01-23 21:14:20 浏览: 106
在Python 3.7中,可以使用`multiprocessing`模块来实现多进程编程。下面是一个简单的Python 3.7多进程的代码示例:
```python
import multiprocessing
def worker(num):
"""进程的工作函数"""
print('Worker:', num)
if __name__ == '__main__':
# 创建进程池,最大进程数为3
pool = multiprocessing.Pool(processes=3)
# 使用进程池执行任务
for i in range(5):
pool.apply_async(worker, (i,))
# 关闭进程池,不再接受新的任务
pool.close()
# 等待所有任务完成
pool.join()
```
上述代码中,首先导入`multiprocessing`模块。然后定义了一个工作函数`worker`,该函数接收一个参数`num`,并打印出相应的信息。
在`if __name__ == '__main__':`条件下,创建了一个进程池`pool`,最大进程数为3。然后使用`pool.apply_async()`方法来异步执行任务,其中`worker`函数作为任务函数,`(i,)`是传递给任务函数的参数。
最后,调用`pool.close()`关闭进程池,不再接受新的任务,并调用`pool.join()`等待所有任务完成。
相关问题
使用python3.7写一个多进程示例代码
下面是一个使用python3.7编写的多进程示例代码:from multiprocessing import Processdef f(name):
print('hello', name)if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
使用python3.7写一个多进程代码,其中有一个子进程,子进程需要对一个全局变量进行循环修改,修改完成之后等待主进程将这个全局变量打印出来,之后再继续子进程运行,如此循环
可以使用Python3.7的multiprocessing模块来实现,示例代码如下:import multiprocessingdef subProcess(global_var):
while True:
global_var += 1
print("子进程修改后的全局变量:%d" %global_var)
multiprocessing.Value('i', global_var).release()
multiprocessing.Value('i', global_var).acquire()if __name__ == '__main__':
global_var = 0
manager = multiprocessing.Manager()
lock = manager.Value('i', global_var)
p = multiprocessing.Process(target=subProcess, args=(lock,))
p.start()
while True:
lock.acquire()
print("主进程打印出来的全局变量:%d" % global_var)
lock.release()
阅读全文