day29 多线程利器(queue)

本文介绍了Python的queue模块,用于实现多线程间的安全信息交换。Queue类提供了FIFO、LIFO和优先级队列,确保线程安全。通过qsize、empty、full等方法可以检查队列状态,put和get方法进行元素的添加和取出。队列的满和空可以通过maxsize参数控制,并可设置阻塞或非阻塞模式。
摘要由CSDN通过智能技术生成

队列模块实现多生产者,多消费者队列。 当必须在多个线程之间安全地交换信息时,它在线程编程中特别有用。 此模块中的Queue类实现了所有必需的锁定语义。 这取决于Python中线程支持的可用性; 看到线程模块。

模块实现了三种类型的队列,它们的区别仅仅是条目取回的顺序。在 FIFO 队列中,先添加的任务先取回。在 LIFO 队列中,最近被添加的条目先取回(操作类似一个堆栈)。优先级队列中,条目将保持排序( 使用 heapq 模块 ) 并且最小值的条目第一个返回。

在内部,这三个类型的队列使用锁来临时阻塞竞争线程;然而,它们并未被设计用于线程的重入性处理。

此外,模块实现了一个 "简单的" FIFO 队列类型, SimpleQueue ,这个特殊实现为小功能在交换中提供额外的保障。

 

(队列相对列表来说更安全,在多线程的时候,列表可能会两个进程同时操作一个数据,而队列就可以保证只操作一个数据)

 </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy393939

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值