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
今日推荐
周排行