多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO (先进先出)队列Queue,LIFO (后入先出)队列LifoQueue。 这些队列都实现了锁原语(可以理解为原子 操作,即要么不做,要么都做完),能够在多线程中直接使用。可以使用队列来实现线程间的同步。 ```python """ @Date 2021/4/5 """ from queue import Queue import threading import time ''' qsize():返回队列的大小。 empty():判断队列是否为空。 full():判断队列是否满了。 get():从队列中取最后一个数据。 put():将一个数据放到队列中。 ''' # q = Queue(3) # print(q.get()) # print(q.empty()) # print(q.full()) # q.put(1) # q.put(2) # q.put(3) # print("--3--") # q.put(4, timeout=3) # 堵塞 报错 # q.put_nowait(4) # print("="*30) # print(q.empty()) # print(q.full()) # print(q.get()) # print(q.get()) # print(q.get()) # print(q.get(timeout=3)) # 堵塞 报错 # print(q.get_nowait()) def set_value(q): index = 0 while True: q.put(index) index += 1 print('qsize', q.qsize()) # time.sleep(3) def get_value(q): while True: print(q.get()) def main(): q = Queue(4) t1 = threading.Thread(target=set_value, args=(q,)) t2 = threading.Thread(target=get_value, args=(q,)) t1.start() t2.start() if __name__ == '__main__': main() ```