在 Python 中仅锁定队列的入口/出口



我有一个系统,其中包含 -

Queue & 2 types of instances -
                             1.push to the Queue
                             2.pull from Queue

我想同时从队列中推送和拉取,但我不确定(我没有在文档中找到,也没有找到实现(如果队列防止对同一内存的访问冲突

for example:
    There is zero elements in the Queue -> I push and then I pull in the same time

我的问题是,如果队列不保护它,有什么方法可以只锁定队列的入口或出口?

队列类知道并发访问并正确处理它。如果从队列(queue.get()(拉取并且队列中没有任何内容,则调用将阻塞或超时。如果推送到队列(queue.put()(,则这将得到正确处理,并且只有在为队列设置了最大大小并且队列已满的情况下,调用才会阻塞或超时。

文档 说:

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

最新更新