第四节 多进程中的队列

 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()

猜你喜欢

转载自www.cnblogs.com/kogmaw/p/12575457.html