#!/usr/bin/env python
# encoding: utf-8
# Date: 2018/6/17
# 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的
#
# 创建队列的类(底层就是以管道和锁定的方式实现):
#
# Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。
from multiprocessing import Queue
q = Queue(3) # 指定队列大小,队列中不放大文件,不指定队列大小,标识可以无穷尽放数据,但是队列在内存
q.put('hello')
q.put({'a': 1})
q.put([3, 3, 3, ])
print(q.full())
# q.put(4) # 已经放不进大小为3的队列
print(q.get())
print(q.get())
print(q.get())
print(q.empty())
print(q.get()) # 取完数据,到这程序已经卡主,等到有人再往进去放数据,才可以拿到数据