进程间的通信(数据交换)
- 现有2个进程A和B,他们都在内存中开辟了空间,那么我们在内存中再开辟一个空间C,作用是连接这两个进程的。对于进程来说内存空间是可以共享的(任何一个进程都可以使用内存,内存当中的空间是用地址来标记的,我们通过查找某一个地址就能找到这个内存)A进程可以不断的向C空间输送东西,B进程可以不断的从C空间读取东西,这就是进程间的通信。
Queue对象
- 对Queue的认识和理解:
- Queue是复杂的数据结构的一种,即队列。
- 队列的特点是“先进先出(FIFO),后进后出(LILO)”
- 使用如下:
- 注意:创建的Queue对象是multiprocessing模块中的Queue类创建的对象。
import multiprocessing
def send(q):
# 发送数据
s_msg = [11, 22, 33]
for i in s_msg:
q.put(i)
print("---已发数据:%s---" % str(i))
print("---数据发送完成---")
def receive(q):
# 接收数据
r_msg = list()
while True:
r_msg.append(q.get())
if q.empty():
break
print("---数据接收完毕:%s---" % str(r_msg))
def main():
# 创建一个队列
# 注意:是multiprocessing模块