python-multithreading相关内容

如何告诉我的主 GUI 等待工作线程?

我已成功将 PyQT4 GUI 中的昂贵例程外包给工作人员 QThread,以防止 GUI 无响应.但是,我希望 GUI 等到工作线程完成处理才能继续执行自己的代码. 我立即想到的解决方案是让线程在完成时发出信号(据我所知,QThreads 已经这样做了),然后在执行其余代码之前在主窗口中查找此信号.这是被黑了吗? 我知道 QThread 提供了这里描述的 wait() 函数,但我不清 ..
发布时间:2021-06-24 19:59:36 Python

从辅助线程调用主线程函数

我正在 PyQt 中制作一个 GUI,供用户创建大量数据的备份. GUI(主线程)正在接受用户的输入.rsync 命令(用于备份)也在主线程中被调用,因此窗口被冻结. 目标是尝试使用 qthread,使应用程序运行时不会冻结. 我的搜索材料: 1:https://www.youtube.com/watch?v=o81Q3oyz6rg.该视频展示了如何通过在辅助线程中运行其他 ..
发布时间:2021-06-24 19:58:10 其他开发

适用于 Linux 和 Windows 的多线程键盘检测器

我想为我现有的添加Linux键盘检测Windows 键盘检测器.所以我用 pyudev 创建了一个 LinuxKeyboardDetector. 可以启动脚本,出现图形用户界面,可惜键盘检测不识别,不报错. 我怀疑使用 QRunnable 的多线程存在问题. 代码 导入系统从日期时间导入日期时间进口平台来自 PyQt5.QtCore 导入 QObject、QRunnable、Q ..
发布时间:2021-06-24 19:49:33 Python

多线程执行几秒后崩溃

基于这里和这里在 PyQt5 中使用多线程迈出了我的第一步.启动程序后,出现图形用户界面,但几秒钟后崩溃并出现以下错误 进程完成,退出代码 -1073740791 (0xC0000409) 谷歌搜索错误信息后,我相对确定多线程有问题.不幸的是,我不知道错误是什么以及如何修复. 代码 导入系统从日期时间导入日期时间导入 wmi来自 PyQt5.QtCore 导入 QObject、QRun ..
发布时间:2021-06-24 19:39:47 Python

PyQt 5 中的多线程

我一直在学习多线程,特别是在 PyQt 5 应用程序的上下文中. 最初我使用“线程"实现了一个版本,但后来了解到我应该使用“QThread"来允许使用信号/插槽,例如: workerThread = QThread() workerObject = Worker(cmdlist) workerObject.moveToThread(workerThread) workerThre ..
发布时间:2021-06-24 19:26:40 其他开发

进度条在作业完成之前不会呈现

我正在尝试制作一个用于复制大文件的进度条.但是,当前对话框窗口会变黑,直到该过程完成.我现在明白我可能必须学习如何使用胎面并将数据传回 GUI.但是我仍然不明白为什么窗口无法完全渲染.我会理解窗口是否因为 moveFilesWithProgress 函数正在运行而没有响应.但在该函数中,我正在更新进度条值.我什至尝试添加 QtGui.QGuiApplication.processEvents() ..
发布时间:2021-06-24 19:08:23 Python

Pyqt5 qthread + 信号不起作用 + gui 冻结

我正在尝试使用 imap lib 制作邮箱检查器,它在没有 gui 的情况下与 python、队列和多线程一起工作得很好. 但是当我尝试放置 gui 时,我所做的每一个函数都会使 gui 冻结直到完成. 我从各种文档(添加 qthread、signal、cursorr 等)和教程中尝试了很多东西,没有一个对我有用. 有人可以帮助我了解如何在运行函数时将文本设置或附加到 Qtext ..
发布时间:2021-06-24 18:51:29 Python

套接字线程和 PyGTK

我正在尝试编写一个即时消息程序,基本的 ui 即将完成,我正在研究消息的接收部分.我有一个 UI 类和一个线程化的 Receive_Socket 类.Received_Socket 类的套接字每次收到消息时,都会执行 gobject.idle_add() 来调用 UI 方法,以便将消息显示到聊天窗口中.在 gobject.idle.add() 行之后,我有一个 while 循环,循环直到消息实际上 ..
发布时间:2021-06-23 20:41:50 Python

OpenCV 中的 Python 线程问题

我在 OpenCV 中使用 threading 模块,我遇到了一个奇怪的问题.使用线程时,我无法再次启动相机以获取视频输入.我会拍一帧然后停下来.虽然在使用 multiprocessing 模块时没有这样的问题.我无法理解是什么导致了这种奇怪的行为. 这段代码总结了我遇到的问题,第二次创建线程时程序会卡住. 导入 cv2导入时间进口螺纹def open_cam():计数 = 0cam = ..

线程中的异步客户端在立即发送数据时使整个程序崩溃

我用 python 编写了一个简单的程序,带有异步和线程.我想在不阻塞任何东西的情况下实现异步客户端,如下所示: 如何在内部处理异步python中的一个类,没有阻塞任何东西? 这是我的代码: 导入套接字、线程、时间、异步类客户端(asyncore.dispatcher):def __init__(self, host, port):asyncore.dispatcher.__init ..
发布时间:2021-06-04 20:47:48 Python

从 Python 中的守护线程触发主线程中的异常

如何从 Python 中的守护线程在运行阻塞代码的主线程中触发异常? 我有一个守护线程,它会定期检查数据库中是否有指示其当前进程应该终止的记录(即用户按下了“取消"按钮).在我的主要非守护进程线程中,我正在运行对外部进程的阻塞调用,我无法轻松修改该进程以正常终止.然而,当我手动触发一个键盘中断时,主线程可以优雅地处理一个. 因此,如果我的守护线程收到终止命令,我该如何在主线程中引发异常 ..
发布时间:2021-06-04 20:46:25 Python

如何在多线程类之外运行 OpenCV VideoCapture 的读取功能?

我正在使用 Nathancy 的 SO 代码阅读两个利用多线程并行来自磁盘的静态视频.以下修改后的代码对我来说非常好: from threading import Thread导入cv2,时间类 VideoStreamWidget(对象):def __init__(self, src=0):self.capture = cv2.VideoCapture(src)# 启动线程从视频流中读取帧sel ..

为什么这些线程无法并行工作?

为什么这段代码不能并行工作? 当奇数的线程开始计算它的大数时,其他线程出于某种原因只是等待它完成,尽管他们应该做自己的事情.我错过了什么? 导入线程、数学、时间类 MyThread(threading.Thread):def __init__(self, num):super(MyThread, self).__init__()self.num = num定义运行(自我):为真:使用互斥锁 ..
发布时间:2021-06-04 20:38:58 Python

pydispatcher 是否在后台线程中运行处理程序函数?

在查找事件处理程序模块时,我遇到了 pydispatcher,它似乎对初学者很友好.我对该库的用例是,如果我的队列大小超过阈值,我想发送一个信号.然后,处理程序函数可以开始处理并从队列中删除项目(然后在数据库中进行批量插入). 我希望处理程序函数在后台运行.我知道我可以简单地覆盖 queue.append() 方法检查队列大小并异步调用处理程序函数,但我想实现侦听器-调度程序模型以保持逻辑干 ..

为什么我的线程在启动之前执行目标函数?

我想了解为什么我必须等待接收器线程结束其工作才能做任何其他事情.我知道我的 sock_listen 函数正在等待连接,这就是它的意思,但我不明白为什么这不在我的线程“内"发生. 对不起,如果这是一个愚蠢的问题,但我有点迷茫!提前致谢! def sock_listen(地址,端口):袜子 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s ..
发布时间:2021-06-04 20:38:21 Python

限制活动线程数 Python

我有顺序生产者消费者模型,它需要大量时间来执行.所以我试图让消费者代码同时运行. 注意:对象是一个生成器. func report_object(self, object_type, objects):对于对象中的 obj:尝试:change_handler(obj, self.config)除了作为 e 的例外:LOG.error("处理对象时发生错误:%s" % e)LOG.excep ..
发布时间:2021-06-04 20:32:59 Python

如何在保持顺序的同时在生成器上使用线程(每个项目多个线程)?

我有一个模仿 REST API 调用的代码(见下文). 对于生成器的 item 中的每个键,它都需要运行一个 REST 调用.所以在我的例子中,记录可能是 {"a": 2, "b": 36, "c": 77} 我需要为每个键(a、b 和 c)单独运行 REST 调用,然后输出结果(其中只是否定数字): {"a": 2, "a_neg": -2, "b": 36, "b_neg": -3 ..
发布时间:2021-06-04 20:31:35 Python