Python(队列)

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

两个线程有可能同时取相同的数,不安全,队列更有优势。

原文地址:https://www.cnblogs.com/112358nizhipeng/p/9908403.html