Python多进程中如何使用Queue传输数据
1. 准备工作打开VMware虚拟化软件,启动Ubuntu虚拟机,并登录系统。在终端中使用gedit工具创建一个名为的文件。2. 编写代码骨架在文件中编写以下代码:```pythonimport qu
1. 准备工作
打开VMware虚拟化软件,启动Ubuntu虚拟机,并登录系统。在终端中使用gedit工具创建一个名为的文件。
2. 编写代码骨架
在文件中编写以下代码:
```python
import queue
from multiprocessing import Process
def readqu(q):
pass
def writequ(q):
pass
if __name__ '__main__':
print('ok')
```
这段代码只是程序的骨架,定义了读队列和写队列两个进程,实现了进程间的数据传输。
3. 验证程序运行
在终端中运行上一步的代码:
```
python3
```
如果打印出"ok",则表示程序没有问题。
4. 创建队列实例
接下来我们继续编写代码,创建一个队列实例,并实现队列的写入和读取操作。
```python
import queue
from multiprocessing import Process
def readqu(q):
print(())
print(())
print(())
def writequ(q):
q.put('abc')
q.put('e')
q.put('f')
if __name__ '__main__':
q queue.Queue()
writequ(q)
readqu(q)
```
尽管以上代码实现了队列的写入和读取,但是只有一个主进程在运行。
5. 多进程中使用Queue
我们修改代码,将写入队列和读取队列的操作分别放在两个不同的进程中。
```python
from multiprocessing import Process, Queue
def readqu(q):
print(())
print(())
print(())
def writequ(q):
q.put('abc')
q.put('e')
q.put('f')
if __name__ '__main__':
q Queue()
pw Process(targetwritequ, args(q,))
pr Process(targetreadqu, args(q,))
()
()
()
()
print('ok')
```
这里需要特别注意,我们使用了多进程导入的Queue。
6. 验证多进程数据传输
在终端中运行上一步的代码:
```
python3
```
如果打印出队列的内容,并且最后打印出"ok",则表示在多进程中实现了数据的传输。