Python 创建6个进程,进程函数用一个,以及主线程和进程之间的通信
时间: 2024-04-15 13:30:48 浏览: 27
要创建6个进程并使用同一个进程函数,在Python中可以使用`multiprocessing`模块。以下是一个示例代码,展示了如何创建6个进程,并在主线程和进程之间进行通信:
```python
import multiprocessing
# 定义进程函数
def process_function(queue):
# 在这里编写你的进程逻辑
# ...
message = queue.get()
print(f"Received message in process: {message}")
# 创建进程队列
queue = multiprocessing.Queue()
# 创建6个进程
processes = []
for _ in range(6):
process = multiprocessing.Process(target=process_function, args=(queue,))
processes.append(process)
process.start()
# 在主线程中发送消息给各个进程
message = "Hello, processes!"
for _ in range(6):
queue.put(message)
# 等待所有进程执行完毕
for process in processes:
process.join()
```
在上述示例代码中,我们首先定义了一个进程函数`process_function`,该函数接受一个进程队列作为参数。在该函数中,我们通过调用`queue.get()`方法来获取主线程发送的消息。
然后,我们创建了一个进程队列`queue`,用于主线程和各个进程之间的通信。
接下来,我们使用一个循环创建了6个进程,并将进程函数和进程队列作为参数传递给每个进程。每个进程都会调用`process_function`函数进行处理。
在主线程中,我们发送了一个消息给每个进程,通过调用`queue.put()`方法将消息放入进程队列中。
最后,我们使用`process.join()`方法等待所有进程执行完毕。
需要注意的是,进程间通信使用的是队列(Queue)来传递消息。主线程通过调用`queue.put()`方法将消息放入队列中,而各个进程通过调用`queue.get()`方法从队列中获取消息。这样可以实现主线程和各个进程之间的双向通信。