如何暂停多处理进程?

2023-12-13

我希望用户能够在启动后的任何给定时间暂停多处理的执行。如何实现?

我的代码是:

# -*- coding: utf-8 -*-
from PySide import QtCore, QtGui
from Ui_MainWindow import Ui_MainWindow
from queue import Queue
import sys
import multiprocessing, os, time

def do_work():
    print ('Work Started: %d' % os.getpid())
    time.sleep(1)
    return 'Success'

def manual_function(job_queue, result_queue):
    while not job_queue.empty():
        try:
            job = job_queue.get(block=False)
            result_queue.put(do_work())
        except Queue.Empty:
            pass

class Worker(QtCore.QThread):
    def __init__(self,name):
        QtCore.QThread.__init__(self)
        self.name = name
        self.pause = False

    def run(self):
        job_queue = multiprocessing.Queue()
        result_queue = multiprocessing.Queue()

        for i in range(1000):
            job_queue.put(None)

        self.workers = []
        for i in range(6):
            tmp = multiprocessing.Process(target=manual_function, args=(job_queue, result_queue))
            tmp.start()
            self.workers.append(tmp)

    def paused(self):
        '''
        pause / resumme ?????????????????????????
        '''

    def stop(self):
       for worker in self.workers:
           print ("end")
           worker.terminate()
           worker.join()


class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.connect(self.ui.actionStart, QtCore.SIGNAL('triggered()'),self.start)
        self.connect(self.ui.actionStop, QtCore.SIGNAL('triggered()'),self.stop)
        self.connect(self.ui.actionPause, QtCore.SIGNAL('triggered()'),self.pause)

    def pause(self):
        self.work.paused()

    def stop(self):
        self.work.stop()

    def start(self):
        self.threads = []
        for tName in range(1):
            self.work = Worker("Thread-%s"%tName)
            self.threads.append(self.work)
            self.work.start()

if __name__ == "__main__":
    app = QtGui.QApplication (sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

如何在Python中暂停按钮单击多处理进程?


使用一个简单的标志作为共享内存,确定生成的进程是否运行。看一个小例子。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from multiprocessing import Process, Value
from time import sleep

def do_work():
    print("Working...")
    sleep(1)

def worker(run):
    while True:
        if run.value:
            do_work()

if __name__ == "__main__":
    run = Value("i", 1)
    p = Process(target=worker, args=(run,))
    p.start()
    while True:
        raw_input()
        run.value = not run.value

I share an instance of Value between processes. Hit Enter to pause or resume the spawned process.

这适用于 Python 2,您应该指出您正在运行哪个版本。

希望能帮助到你。

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

如何暂停多处理进程? 的相关文章

  • 获得熊猫按群体连续几周的最长连续记录

    目前我正在处理不同主题的每周数据 但可能会有一些没有数据的长连续 所以 我想做的就是保留每个连续几周的最长连续id 我的数据如下所示 id week 1 8 1 15 1 60 1 61 1 62 2 10 2 11 2 12 2 13 2
  • Python生成随机数时出现属性错误

    我早些时候就同一段代码提出了类似的问题 但我再次发现自己陷入困境 特别是生成包含两个字母 两个数字 然后两个字母的车牌 我希望这个问题不是重复的 但在这种情况下 我非常不知道该怎么做 这是到目前为止的代码 我希望你能找出我哪里出错了 fro
  • 使用 JSON 将数据从 Python 导出到 Tableau?

    如何以表格形式从 Python 获取 400 万行和 28 列 我假设 基于搜索 我应该使用 JSON 格式 这种格式可以处理大量数据并且足够快 我制作了 12 行数据的子集并尝试使其正常工作 好消息是 它正在发挥作用 坏消息 不是我想要的
  • Python2 math.fsum 不准确?

    我正在使用 python2 数学模块来计算 fsum 的总和 据我所知 0 1通常不能存储二进制 据我了解 math fsum 应该以某种方式解决这个问题 import math math fsum 0 0 0 1 0 1 math fsu
  • 将鼠标悬停在 Folium 的弹出窗口中

    用这样一个简单的例子 import folium map 1 folium Map location 45 372 121 6972 zoom start 12 tiles Stamen Terrain folium Marker 45 3
  • 如何针对 Heroku 路由器的代理/缓冲情况优化 uWSGI?

    我在 Heroku 的生产中使用 uWSGI 已有一年多了 它似乎比 Gunicorn 处理所有事情都要好得多 随着我们的流量扩大 我试图更好地理解heroku的路由器和uWSGI之间的接口 以优化和防止问题 但它对我来说仍然相当不透明 我
  • 如何在Tensorflow中读取json文件?

    我正在尝试编写一个函数 用于读取张量流中的 json 文件 json 文件具有以下结构 bounding box y 98 5 x 94 0 height 197 width 188 rotation yaw 27 970195770263
  • Tastypie:GET 的身份验证和 POST 的匿名

    我使用 Django Tastypie 来管理我的用户集合 是否可以允许匿名用户在 API 中发布 在某个端点创建新用户时 并限制经过身份验证的用户仅获取自己的用户 而不是所有用户 感谢您的帮助 我发现最简单的事情就是对我正在使用的身份验证
  • AMLS 实验运行停留在“正在运行”状态

    我运行了 Azure 机器学习服务实验 并使用 Jupyter Notebook 记录了神经网络损失 日志记录工作正常 神经网络训练也按预期完成 但实验一直停留在运行状态 关闭计算资源不会关闭实验运行 我无法从实验面板取消它 此外 运行没有
  • 如何从数据存储区刷新 NDB 实体?

    我希望能够在我的代码调用的测试中断言Model put 对于已修改的实体 不幸的是 似乎正在进行一些缓存 例如以下代码 from google appengine ext import ndb class MyModel ndb Model
  • 如何有效地找到两个轮廓集之间的所有交点

    我想知道找到两组轮廓线之间所有交点 舍入误差 的最佳方法 哪种方法最好 这是示例 import matplotlib pyplot as plt import numpy as np x np linspace 1 1 500 X Y np
  • 如何使用 BeautifulSoup 排除表中的某些行?

    我已经从表格中获得了所需的数据 但不想要各个玩家统计数据之间的缩写 Rk Pos Name 等 如何在保留所需数据的同时排除这些数据 包含缩写的行被归类为 thead 但我不知道如何使用该信息来跳过它 我知道玩家的数据都被压缩在一起 但现在
  • 从 FTP 服务器上的 ZIP 存档读取文件,无需下载到本地系统

    我在 FTP 服务器上的目标文件是 ZIP 文件 CSV 位于更远的两个文件夹中 我如何才能使用 BytesIO 让 pandas 读取 csv 而无需下载它 这是我到目前为止所拥有的 ftp FTP FTP SERVER ftp logi
  • 我可以使用对象(类的实例)作为 Python 中的字典键吗?

    我想使用类实例作为字典键 例如 classinstance class dictionary classinstance hello world Python似乎无法将类作为字典键处理 还是我错了 另外 我可以使用像 classinstan
  • 如何设置 pandas DataFrame _repr_html_ 方法的默认样式?

    我有一个 pandas DataFrame 其中有一列是 url 并且我编写了以下格式化程序以将其作为链接呈现在我的笔记本中 def make clickable val target blank to open new window re
  • 使用 Cython 扩展模块分发共享库和一些 C 代码

    我正在尝试从大型 C 共享库 libbig so 中获取一些函数 并通过 Cython 将它们公开给 Python 为此 我有一个小 C 文件 small cpp 它为我需要的共享库的功能提供了一个薄包装器 从而可以轻松地通过 Cython
  • Python 中 Javascript 的 reduce()、map() 和 filter() 的等价物是什么?

    Python 的等价物是什么 Javascript function wordParts currentPart lastPart return currentPart lastPart word Che mis try console l
  • 是否可以通过 Python 使用 Cocoa API?

    我想知道是否可以将 Cocoa Apple 的 API 与 Python 一起使用 以便能够运行像这样的任何代码link https developer apple com documentation appkit nsworkspace
  • Python 生成器每次调用都会产生相同的值

    我希望这个生成器生成列表中每个连续值的余弦 但每次都得到相同的值 import math angles range 0 361 3 calculate x coords def calc x angle list for a in angl
  • 如何在 python setup.py 中 chmod 文件?

    我使用 setup py 创建了一个 python 包安装 我希望它复制文件夹 为临时创建的 did 中的数据文件 问题是我必须使用 sudo 权限调用 setup py 因为它写入 usr local 因此 当我的数据文件复制到 did

随机推荐

  • 使用 Spring Reactor 时为什么要使用断路器和隔板?

    请帮助我找到断路器和隔板模式在 Spring Reactor 应用程序中有用的原因 由于 Reactor 中的操作将是非阻塞的 并且这两种模式旨在节省对资源 主要是线程 的潜在影响 因此在什么情况下我可以使 Spring Reactor 应
  • 如何“独立”使用PolicyHttpMessageHandler?

    我只是想创建一个简单的测试 我使用DelegateHandlers实例化一个HttpClient无需带Asp net Core包 我有 2 个删除处理程序 ThrottlingDelegatingHandler PolicyHttpMess
  • 如何在闪亮中设置两个相关输入值(滑块和数字)的初始值?

    我已经在我闪亮的应用程序中定义了两个互连或相互依赖的输入 现在 我的问题是为这些滑块和数字输入设置特定的初始值 似乎他们总是从最小值开始 即使我现在也不知道为什么 如何指示这些输入参数的唯一起点或初始值 我附上了我的应用程序的简化部分 以便
  • 屏幕关闭时检测手机移动

    我正在开发一个应用程序 它应该检测用户的移动 当他停止超过 5 分钟时 它应该发出警报 我能够使用加速度计检测运动 但问题是屏幕关闭时它不起作用 我也尝试过使用部分wakeLock 重新注册加速度计也不起作用 这应该是摩托罗拉设备的解决方法
  • RegEx 在 Powershell 中匹配两个字符串之间的字符串

    这是我的示例数据 选项失败不匹配选项批处理开启选项确认关闭打开 sftp 用户名 电子邮件受保护 22 主机密钥 ssh rsa 1024 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 获取
  • 如何比较和排序 2 个 csv 以显示差异

    您好 我有 2 个以下格式的 csv 基本上是电子邮件列表以及该发件人向我们发送电子邮件的次数 文件1 csv Email Value email protected 2 e email protected 4 email protecte
  • R openNLP无法找到函数sentDetect()

    我正在使用一些软件包 webmining sentiment openNLP 来提取一些有关股票 JPM 的句子 但运行时出现以下错误 eval expr envir enclos 中的错误 找不到函数 sentDetect 这是我使用的代
  • 如何为连接到 I2C gpio 扩展器的虚拟 mdio-gpio 设备配置 ACPI *.asl

    我正在使用 Q7 模块 x86 并尝试在 Linux 上使用 ACPI SSDT Overlay 配置我们的外设 但我对此很挣扎 我想我误解了ACPI的一些核心概念 Problem CPU gt I2C gt PCA9575 GPIO Ex
  • 使用 QXmlQuery (Qt XQuery) 时如何绑定命名空间前缀?

    我正在尝试使用 QXmlQuery 对具有声明的默认命名空间的文档执行 XQuery 表达式 供讨论
  • 当我想从steam市场获取json时,jquery json错误

    我在向 Steam 发送 ajax 请求时遇到问题 我想从蒸汽市场获得价格 function jPrice httpToJson getJSON httpToJson function data return data median pri
  • 如何将 DLL 中的表单嵌入到 Inno Setup 向导页面中?

    我在 Delphi DLL 中构建了一些 VCL 表单 这些表单在 Inno Setup 安装期间显示 然而 如果我可以将这些表单嵌入到 Inno Setup 向导中 那就会更加简洁 我该怎么做呢 对您来说最简单的方法是创建一个导出函数 它
  • 单队列:多个消费者并发消息处理

    我是jms新手 目标是在异步侦听器的 onMessage 方法中同时处理来自队列的消息 方法是将侦听器实例附加到多个消费者 每个消费者使用自己的会话并在单独的线程中运行 这样消息就会传递给不同的消费者并发处理 1 是否可以通过创建多个消费者
  • 在 R Shiny 中使用 renderText() 输出多行文本

    我想使用一个输出多行文本renderText 命令 然而 这似乎不可能 例如 从闪亮教程我们已经截断了代码server R shinyServer function input output output text1 lt renderTe
  • 什么是 JavaScript 数组?

    我试图了解 JavaScript 数组是什么 因为传统编程语言将数组定义为可以使用偏移量寻址的连续存储区域 现在 一个普通的 JavaScript 对象可以被寻址为 myObj myProperty my Value or myObj my
  • React:如何从子组件渲染父组件?

    我的任务是为客户构建一个项目 该项目需要一个父组件包装三个子组件 具体来说 父组件按照以下方式渲染子组件 父级 顶部 中间 底部 PARENT 组件代表一组项目中的一个 在顶部组件中 有一个菜单按钮 显示组中所有项目的列表 其目的是 如果用
  • 在循环中使用 Promises 和 fs.readFile

    我试图理解为什么下面的承诺设置不起作用 注意 我已经使用 async map 解决了这个问题 但我想了解为什么我的以下尝试不起作用 正确的行为应该是 bFunc 应根据需要运行多次以读取所有图像文件 下面的 bFunc 运行两次 然后 cF
  • 计算不带小数的平均值

    我希望我能弄清楚这一点 我需要生成一个表 其平均值称为 AVG AMT 整数 并且没有小数 它可以舍入或截断 对于这张桌子来说 这确实不重要 这是我试图写的 SELECT TC Code AVG ALW AMT as int 8 0 AS
  • 如何在我不想编辑的第 3 方代码中禁用 gcc 发出的未使用变量警告?

    我想知道您将什么开关传递给 gcc 编译器来关闭未使用的变量警告 我在 Windows 上的 boost 中遇到错误 并且我不想触及 boost 代码 C boost 1 52 0 boost system error code hpp A
  • Angular JS 指令 - 模板、编译还是链接?

    我想创建一个 Angular JS 指令来检查字符串的长度 如果字符串太长 无法使用过滤器缩短它 并在鼠标悬停时显示 Angular UI 弹出窗口 我应该在指令中的哪个位置放置功能以使其正常工作 链接 模板或编译 风景 div proje
  • 如何暂停多处理进程?

    我希望用户能够在启动后的任何给定时间暂停多处理的执行 如何实现 我的代码是 coding utf 8 from PySide import QtCore QtGui from Ui MainWindow import Ui MainWind