day29
队列
1 import queue 2 3 d = queue.Queue()#可设置队列数,默认值为0,无限大 4 5 d.put('a') 6 d.put('b') 7 d.put('c', 1)#超过队列数,0报错,1阻塞 8 9 #默认FIFO 10 print(d.get()) 11 print(d.get()) 12 print(d.get()) 13 print(d.get()
以上会被阻塞。
执行结果:
a
b
c
阻塞,不会结束。
使用数组不安全
import threading,time li=[1,2,3,4,5] def pri(): while li: a=li[-1] print(a) time.sleep(1) try: li.remove(a) except: print('----',a) t1=threading.Thread(target=pri,args=()) t1.start() t2=threading.Thread(target=pri,args=()) t2.start()
两个线程有可能同时取相同的数,不安全,队列更有优势。