python多进程读取全局变量列表数据代码示例
时间: 2023-09-23 10:02:31 浏览: 99
下面是一个简单的示例代码,其中包括一个全局列表变量和两个进程,每个进程都会读取全局列表的数据:
```python
import multiprocessing
# 全局变量列表
my_list = [1, 2, 3, 4, 5]
# 进程函数
def read_list():
global my_list
for i in my_list:
print('Process', multiprocessing.current_process().name, 'reading', i)
if __name__ == '__main__':
# 创建两个进程
p1 = multiprocessing.Process(target=read_list)
p2 = multiprocessing.Process(target=read_list)
# 启动进程
p1.start()
p2.start()
# 等待进程结束
p1.join()
p2.join()
```
在上面的代码中,我们定义了一个全局列表 `my_list`,并且在进程函数 `read_list` 中读取了这个列表的数据。在进程函数中,我们首先使用 `global` 关键字声明了 `my_list` 是一个全局变量,然后使用一个循环读取列表中的数据,同时输出当前进程的名称和读取的数据。
在 `if __name__ == '__main__':` 语句块中,我们创建了两个进程 `p1` 和 `p2`,并且将它们的目标函数设置为 `read_list`。然后我们启动了这两个进程,等待它们都结束后程序才会退出。
当你运行这个程序时,你会看到两个进程交替地读取全局列表中的数据。注意,由于这两个进程是并行执行的,它们读取列表的顺序可能会不同,因此输出的结果也可能会不同。
阅读全文