如何在python中实现multiprocessing.Queue的LIFO?

2023-12-31

我了解队列和堆栈之间的区别。但是如果我生成多个进程并在它们之间发送消息multiprocessing.Queue如何访问首先放入队列中的最新元素?


您可以使用多处理管理器 https://docs.python.org/3/library/multiprocessing.html#multiprocessing-managers包裹一个queue.LifoQueue https://docs.python.org/3/library/queue.html#queue.LifoQueue做你想做的事。

from multiprocessing import Process
from multiprocessing.managers import BaseManager
from time import sleep
from queue import LifoQueue


def run(lifo):
    """Wait for three messages and print them out"""
    num_msgs = 0
    while num_msgs < 3:
        # get next message or wait until one is available
        s = lifo.get()
        print(s)
        num_msgs += 1


# create manager that knows how to create and manage LifoQueues
class MyManager(BaseManager):
    pass
MyManager.register('LifoQueue', LifoQueue)


if __name__ == "__main__":

    manager = MyManager()
    manager.start()
    lifo = manager.LifoQueue()
    lifo.put("first")
    lifo.put("second")

    # expected order is "second", "first", "third"
    p = Process(target=run, args=[lifo])
    p.start()

    # wait for lifoqueue to be emptied
    sleep(0.25)
    lifo.put("third")

    p.join()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在python中实现multiprocessing.Queue的LIFO? 的相关文章

  • docker-compose:容器之间的 Redis 连接被拒绝

    我正在尝试设置一个 docker compose 文件 该文件旨在替换运行多个进程 RQ 工作线程 RQ 仪表板和 Flask 应用程序 的单个 Docker 容器解决方案导师 http supervisord org 主机系统是 Debi
  • 从一个数组中删除另一个数组中的元素

    假设我有这些二维数组A and B 我怎样才能从中删除元素A那些在B 集合论中的补集 A B A np asarray 1 1 1 1 1 2 1 1 3 1 1 4 B np asarray 0 0 0 1 0 2 1 0 3 1 0 4
  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • 在Linux中的端口80上运行flask[重复]

    这个问题在这里已经有答案了 也许以前有过这个问题的答案 所以请重定向我 如果是这样的话 我正在考虑在端口 80 上运行 Flask 所以我检查了是否有任何东西正在使用端口 80 因为事实证明端口 80 没有运行 所以当我输入以下内容时 if
  • 如何在Python中找到低精度浮点值的原始文本表示?

    我遇到了显示问题floatPython 中的值 从外部数据源加载 它们是 32 位浮点数 但这也适用于较低精度的浮点数 以防万一 这些值是由人类在 C C 中输入的 因此与任意计算值不同 与round数字很 可能not预期的 但不能被忽略
  • matplotlib get_color 用于子图

    我正在按照这里的教程进行操作 https matplotlib org gallery ticks and spines multiple yaxis with spines html https matplotlib org galler
  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • tkinter 上的“NoneType”对象没有属性“get”错误[重复]

    这个问题在这里已经有答案了 我最近开始使用 python 3 6 进行编码tkinter并尝试创建我自己的项目repl it 该项目是一个简单的交互式待办事项列表 但是我陷入困境并且无法使该功能正常工作 该函数只是简单地获取条目并将其添加到
  • Django 和 AWS 简单电子邮件服务 [重复]

    这个问题在这里已经有答案了 我正在尝试启动并运行 django 站点 并且正在尝试启用 django 的标准密码重置服务 我的网站由 AWS EC2 托管 因此我想将 AWS SES 用于我的电子邮件服务 但是 我无法使 smtp 连接正常
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • 如何让 Discord 机器人显示“机器人正在输入...”状态?

    所以如果我有一个像这样的长命令 bot command pass context True async def longCommand ctx typing status sleep 10 bot say Done 不幸的是 在文档或此处没
  • Tensorflow:Cuda 计算能力 3.0。所需的最低 Cuda 能力为 3.5

    我正在从源安装tensorflow 文档 https www tensorflow org versions r0 10 get started os setup html installing from sources Cuda驱动版本
  • Python 的二进制字符串列表

    我有一个像这样的二进制字符串 1100011101 我想将其解析为一个列表 其中每个 1 或 0 块都是列表中的单独值 例如 1100011101 变成 11 000 111 0 1 您可以通过使用正则表达式而不是从中获得一点 次要 性能g
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • 从 Cython 代码生成 SIMD 指令

    我需要概述在高性能数字代码中使用 Cython 可以获得的性能 我感兴趣的事情之一是找出优化的 C 编译器是否可以对 Cython 生成的代码进行矢量化 所以我决定写下面的小例子 import numpy as np cimport num
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • Python,质数检查器[重复]

    这个问题在这里已经有答案了 你好 我正在创建一个函数来检查一个数字是否是素数 但它告诉我 9 是一个素数 def eprimo num if num lt 2 return False if num 2 return True else f
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 我收到错误:rest_framework.request.WrappedAttributeError:'CSRFCheck'对象没有属性'process_request'

    urls py from django conf urls import url from django contrib import admin from django conf import settings from django c

随机推荐

  • MatPlotLib 修改自定义线性分段颜色图

    关于已接受的答复这个问题 https stackoverflow com questions 38882233 geopandas matplotlib plot custom colors 38885389 38885389 如果我想使用
  • Java 期货管道

    我正在努力优化我的Future的管理技术 假设我们有这种典型的处理场景 我运行一个查询以从数据库中获取一些记录 SELECT FROM mytable WHERE mycondition 该查询返回很多我需要处理的行 例如 while re
  • 清除 TList 或 TObjectList

    我对使用什么来存储列表中的对象有点困惑 到目前为止我已经使用过TList并释放循环中的每个项目 然后我发现TObjectList自动执行此操作Free 然后我从文档中看到了这个TList Clear Call Clear清空 Items 数
  • C Unix 管道示例

    尝试实现一个shell 主要是管道 我已经编写了这个测试用例 我希望将 ls 简单地通过管道传输到 wc 它肯定不会按预期工作 它将 ls 打印到终端 然后打印内存耗尽 我非常不知道如何解决这个问题并让它发挥作用 find path 在我的
  • 从多个 SQL 文件恢复 SQL

    我有一个包含 400 多个 sql 文件的数据库备份 foreach表有一个单独的sql文件 是否可以将所有这些文件一起导入数据库 如果可以的话你能告诉我该怎么做吗 备份也是一个 gzip 压缩的 tar 文件 有没有办法从压缩文件中恢复
  • 动态xpath表达式

    美好的一天 同事们 请告诉我如何进行动态 xpath 解析 例如 而不是写 domXPath gt query id article id 18 gt 写类似的东西 domXPath gt query id article id 因为在我的
  • 现代和旧的编译器是用什么编写的?

    作为编译器 而不是解释器 只需要翻译输入而不运行它 其本身的性能应该不会像解释器那样有问题 因此 您不会用 Ruby 或 PHP 编写解释器 因为它太慢了 但是 编译器呢 如果您用脚本语言编写一个编译器 甚至可能具有快速开发的特点 您可能会
  • 使用通用接口约束时的协变/逆变难题

    public interface IShape public class Rectangle IShape public class Base public class Derived Base public interface IFoo
  • 如何让 ASP.NET AJAX 通过 GZip 压缩发送其 JSON 响应?

    我在 IIS7 中启用了压缩 并且它对除 ASP NET AJAX 构建的响应之外的所有响应都按预期工作 我有一个向客户端提供数据的网络服务 当直接调用Web服务时 它被正确压缩 但是 当通过 ASP NET AJAX 调用时 JSON 响
  • 同步和异步活动

    谁能帮助我理解同步 and 异步Android 中的活动 Android 中的同步和异步活动到底意味着什么 StartActivity StartSubActivity and StartAcivityForResult同步或异步启动活动
  • 多语言安装

    我正在尝试使用以下命令安装 多语言 pip install polyglot 但我收到以下错误 Command python setup py egg info failed with error code 1 in C Users K 1
  • Realm:比较原始类型的 List,例如:List

    比较 Realm 字符串列表的预期方法是什么 我正在尝试比较 Realm 中的两个字符串列表 如下所示 func testRealmListOfStrings let strings a b c let list1 List
  • 为什么条件移动不能正常工作

    在我编译下面的代码后 该功能似乎没有按预期工作 int cread int xp return xp xp 0 我提取了汇编版本中的对应部分 如下所示 xp在寄存器中 edx movl 0 eax testl edx edx cmovne
  • 高图表中的条件标记颜色

    我正在使用 Highcharts 我想用不同的颜色填充折线图中的标记 例如 当变量 a 为 1 时 则用红色填充标记 否则用绿色填充 可以这样做吗 这是代码 http jsfiddle net EnyCJ 1 http jsfiddle n
  • 如何获取mysql中两个日期之间的时间记录?

    我正在制作一个考勤系统 它包含两个日期之间的时间表 例如 晚上 10 00 到凌晨 3 00 如何从 mysql 数据库中检索时间范围在 2 个日期之间的行 我已经知道如何在 mysql 中使用 BETWEEN 我的问题是如何在不知道确切时
  • 如何从时间戳转换为 Mongo ObjectID

    我知道我们可以使用getTimestamp 从 ObjectId 中检索时间戳 但是有什么方法可以从时间戳生成 ObjectId 吗 更具体地说 如果我有一个输入month and year 然后我想将其转换为Mongo对象ID要在数据库中
  • 使用 jquery 遍历表格单元格

    我有一个包含可变数量列的表 我编写了一个函数来迭代每行中的每个单元格以执行以下操作 检查是否存在输入 检索输入的值 将饼图附加到条件 1 计算结果为 true 的任何单元格 这是我的代码 function addPieCharts var
  • Kubernetes minikube 教程后无法停止 10 个容器

    docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7523fd2c20c7 gcr io google containers k8s dns sidecar am
  • Drupal 7 示例模块,找不到页面,为什么?

    我编写了一个简单的测试模块示例 2个文件 test module test info 并在drupal 7模块中启用了它们 我清除了所有缓存 但当我尝试访问 localhost drupal hello 时 我得到 drupal 404 页
  • 如何在python中实现multiprocessing.Queue的LIFO?

    我了解队列和堆栈之间的区别 但是如果我生成多个进程并在它们之间发送消息multiprocessing Queue如何访问首先放入队列中的最新元素 您可以使用多处理管理器 https docs python org 3 library mul