1 import multiprocessing
2
3 '''
4 q = multiprocessing.Queue(3)
5 q.put(1)
6 q.put_nowait(0)
7 q.get()
8 q.get_nowait()
9 q.full()
10 q.empty()
11 # 放入的元素超过定义的个数,程序会处于阻塞状态,get方法一样。两者都可以通过调用q.get_nowait()让其报错强制退出程序
12 '''
13
14 def put_data(q):
15 """写入数据"""
16 data = [11, 22, 33, 44, 55, 66]
17 for x in data:
18 q.put(x)
19 print('.............数据写入完成............')
20
21 def download_data(q):
22 """处理数据"""
23 data = list()
24 while True:
25 data.append(q.get())
26 if q.empty(): # 当数据没取完会处于阻塞状态
27 break
28 print(data)
29 print('数据处理完了')
30
31 def main():
32 q = multiprocessing.Queue(10)
33 p2 = multiprocessing.Process(target=download_data, args=(q,))
34 p1 = multiprocessing.Process(target=put_data, args=(q,))
35 p1.start()
36 p2.start()
37
38
39 if __name__ == '__main__':
40 main()