【Python】多进程-队列

时间:2023-03-09 04:07:23
【Python】多进程-队列
#练习:队列
from multiprocessing import Process, Queue def offer(queue):
# 入队列
queue.put("Hello World") if __name__ == '__main__':
# 创建一个队列实例
q = Queue()
p = Process(target = offer, args = (q,))
p.start()
print q.get() # 出队列
p.join() #练习
import time
from multiprocessing import Process, Queue def set_data(queue):
# 入队列
for i in range(10):
time.sleep(2)
queue.put("Hello World"+str(i)) def get_data(queue):
for i in range(10):
# 入队列
time.sleep(1)
print queue.get("Hello World") if __name__ == '__main__':
# 创建一个队列实例
q = Queue()
p1 = Process(target = set_data, args = (q,))
p2 = Process(target = get_data, args = (q,))
p1.start()
p2.start() p1.join()
p2.join()
print u"队列是否为空?",q.empty() #练习:写两个队列,一个用来写,一个用来读,一边写,一边读
from multiprocessing import Process, Queue def input_queue(queue_input):
for i in range(11):
if queue_input.full():
print "队列已经满啦"
else:
queue_input.put(i)
#print queue_input def get_queue(queue_get):
for i in range(11):
if queue_get.empty():
print u"队列已经空啦"
else:
print queue_get.get() if __name__=="__main__":
q=Queue()
p1=Process(target=input_queue,args=(q,)) #写进程和读进程是同时执行的,只不过通过sleep时间来控制读和写的速度
p2=Process(target=get_queue,args=(q,)) p1.start()
p2.start() p2.join()
p2.join()