我有一个包含-
的系统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
我的问题是,如果队列不保护它,有什么方法只能锁定队列的入口或出口吗?
答案 0 :(得分:1)
Queue类了解并发访问并正确处理。如果您从队列(queue.get()
)中拉出,但队列中没有任何内容,则呼叫将阻塞或超时。如果您推送到队列(queue.put()
),则将正确处理此问题,并且仅当您为队列设置了最大大小且已满时,呼叫才会阻塞或超时。
queue
模块实现了多生产者,多消费者队列。它 当必须进行信息处理时,在线程编程中特别有用 在多个线程之间安全地交换。Queue
类在此 模块实现所有必需的锁定语义。这取决于 Python中线程支持的可用性;参见threading
模块。