python-multithreading相关内容

python - 当第二个线程在python中完成时如何停止第一个线程?

有没有办法在第二个线程完成时停止第一个线程? 示例: from functools import partial进口螺纹def run_in_threads(*functions):线程=[]对于函数中的函数:线程=线程.线程(目标=函数)线程开始()线程.附加(线程)对于线程中的线程:线程连接()def __print_infinite_loop(value):而真:打印(值)def _ ..
发布时间:2021-06-04 20:25:02 Python

Python:'thread._local 对象没有属性'todo'

我目前正在使用线程和所有这些编程基于 python 的数据报服务器. 我遇到了以下问题:我使用多个分配线程将传入的包分配给不同的处理线程.在处理线程中,我使用 threading.local() 来跟踪线程局部变量. 我目前正在测试我的服务器在高负载(约 2 秒内 2000 个数据包)期间的反应,并且发现了 local()-Object 的奇怪行为. 它似乎可以正常工作一段时间, ..
发布时间:2021-06-04 20:24:28 Python

python中的线程是否需要加入以避免泄漏?

我了解加入线程的目的,我在询问资源使用情况.我在这里的具体用例是我有一个长时间运行的进程,它需要产生许多线程,并在操作期间检查它们是否已终止,然后将它们清理干净.主线程等待 inotify 事件并根据这些事件产生线程,因此它不能阻塞 join() 调用,因为它需要阻塞 inotify 调用. 我知道,例如,对于 pthreads,不加入终止的线程会导致资源泄漏: PTHREAD_JOI ..
发布时间:2021-06-04 20:22:30 Python

Python多线程模型

我一直在研究 python 中的多线程,但是我对一些问题感到困惑- 首先,python线程库创建的线程是用户级线程还是内核级线程? 书上说用户级线程必须映射到内核线程操作系统只创建和维护内核级线程. python 线程库中将使用哪种线程模型?此外,谁在内核级线程和用户级线程之间做出选择?是操作系统还是程序员有发言权? 如果 多对一模型(如图所示)使用,我认为它不是真正的多线 ..
发布时间:2021-06-04 20:10:48 其他开发

python GIL的多线程示例

我已经阅读了很多关于编写多线程代码时 Python GIL 业务有多“糟糕"的文章,但我从未见过示例.有人可以给我一个基本的例子,说明在使用线程时 GIL 何时会导致问题. 谢谢! 解决方案 多线程的主要原因之一是程序可以利用多个 CPU(和/或 CPU 上的多个内核)来计算更多每秒操作数.但是在 Python 中,GIL 意味着即使您有多个线程同时进行计算,在任何给定时刻实际上只有 ..
发布时间:2021-06-04 20:07:28 Python

如何同步运行python函数?

我一直在为 Python 构建一个 twitch 聊天机器人,其中包含一些自定义游戏,我正在添加这些游戏以供观众在观看我的直播时使用.我目前的目标是做一个骰子决斗游戏(2人游戏,谁得到最高的数字就赢得赌注的总和).为了比赛,我希望双方玩家在允许比赛继续之前接受比赛,但我也想实现比赛计时器,以便如果其他用户在计时器到期之前不接受比赛,它将取消比赛.我想为每个游戏创建一个新线程并扫描以查看游戏是否已过 ..
发布时间:2021-06-04 20:06:21 Python

如何按名称将变量传递给 Python 中的线程?

假设我有一个如下所示的函数: def _thread_function(arg1, arg2=None, arg3=None):#随机码 现在我想使用该函数创建一个线程,并为其提供 arg2 而不是 arg3.我正在尝试如下: #注意:在这个代码块中,我已经设置了一个名为 arg1 的变量和一个名为 arg2 的变量threading.Thread(target=self._thread_f ..

如何在 Python 中获取线程 ID?

我有一个多线程 Python 程序和一个实用函数,writeLog(message),它写出一个时间戳,然后是消息.不幸的是,生成的日志文件没有给出哪个线程正在生成哪个消息的指示. 我希望 writeLog() 能够在消息中添加一些内容以识别哪个线程正在调用它.显然,我可以让线程传递这些信息,但这需要做更多的工作.是否有一些我可以使用的与 os.getpid() 等效的线程? 解决方案 ..
发布时间:2021-06-04 20:00:16 Python

如何处理__main__.py中的python3多处理

我提出的问题,我不明白问题的真正原因(这似乎与我在其中一个子进程中使用烧瓶有关). 请忽略此(由于赏金无法删除) 本质上,当将 python 库作为模块运行时,我必须启动一些进程和/或池. 但是,由于 __name__ == '__main__' 在 __main__.py 中始终为真,这证明是一个问题(请参阅多处理文档:https://docs.python.org/3/lib ..

Python - “不能腌制 thread.lock";Windows多进程下创建线程时出错

我被我认为是基本的多进程和线程问题所困扰.我已经设置了一个多进程,并在其中设置了一个线程.但是,当我在 init 函数中设置线程类时,出现以下错误: “类型错误:无法pickle thread.lock 对象". 但是,如果线程是在 init 函数之外设置的,则不会发生这种情况.有谁知道为什么会这样?请注意,我使用的是 Windows. 下面有一些代码来说明这个问题.如下所示,它 ..
发布时间:2021-06-04 19:56:08 Python

Python进程未加入

我无法粘贴我的代码片段,所以我会解释这个场景1. 我有一份大约 50000 只需要估值的股票清单2. 这些股票在 MultiProcess.Queue 中3.我创建了多个进程,每个进程会从队列中取出一批50个做一些事情.4.在主线程中,我有一个看起来像这样的检查 another_to_process = True而more_to_process:如果(stock_queue.qsize() = ..
发布时间:2021-06-04 19:52:39 Python

如何在多处理期间在共享内存中使用 Pandas DataFrame?

在一个答案:共享只读数据是否复制到不同进程进行多处理?共享内存的有效解决方案给出了一个 numpy 数组. 如果使用 Pandas DataFrame 会是什么样子? 背景:我希望能够在多处理期间写入数据帧,并希望能够在多处理完成后进一步处理它. 解决方案 如果您不想使用 dask,您可以使用共享内存共享一个 Pandas 数据帧,首先将其转换为 numpy 数组,然后在子进程 ..

Python:线程中的pyautogui鼠标移动缓慢且不可靠

我试图在 Python 3 中自动将鼠标移动到某个位置.为此,我使用了一个模块 pyclicker,特别是模块中的 HumanClicker 类.它使用一种算法来计算鼠标移动的“类人"点流.为了沿着计算点实际移动它,它使用 pyautogui.moveTo().来自 pyclicker.HumanClicker: def move(self, toPoint, duration=2, huma ..
发布时间:2021-06-03 21:19:38 其他开发

Python实时绘制ROS数据

我正在尝试使用python绘制进入计算机的实时数据.数据来自 ROS 主题,我使用“rospy"订阅该主题以获取数据.这是我写的代码 导入rospy从sensor_msgs.msg导入ChannelFloat32导入matplotlib.pyplot作为pltN = 200我= 0topic =“"“x = 范围(N)电机= [0] * N电动机= [0] * Nplt.ion()无花果= pl ..
发布时间:2021-06-01 20:07:55 Python

为什么我的Python应用程序因“系统"/内核CPU时间而停滞不前

首先,我不确定是否应该将其发布为Ubuntu问题或在此处发布.但是我想这更多是Python问题,而不是操作系统问题. 我的Python应用程序在64核AMD服务器上的Ubuntu上运行.它通过 ctypes 调用一个.so来通过网络从5个GigE摄像机中提取图像,然后对其进行处理.我在我的应用程序中看到频繁的暂停,导致来自相机的帧被外部相机库丢弃. 为调试此问题,我使用了流行的 psu ..

如何通过HTTP API控制Python GUI

我想要一个实现HTTP API(例如使用Flask)的Python程序,在该程序上它可以接收消息以在屏幕上显示各种窗口(例如使用tkinter). 构造这样一个程序的好方法是什么?我相信我将需要两个单独的线程:一个用于绘制tkinter窗口,另一个用于侦听HTTP请求. 例如,我想发送http请求到/show_window,然后显示一个窗口并保留在屏幕上,直到将请求发送到/hide_w ..
发布时间:2021-05-08 19:27:25 Python

为什么子线程无法访问flask_login中的current_user变量?

我正在编写 Flask应用程序,并尝试为某些与服务器相关的功能插入多线程实现.我注意到了这种奇怪的行为,所以我想了解为什么会发生这种情况以及如何解决它.我有以下代码: 从flask_login 导入current_user,必须登录导入线程posts =蓝图("posts",__ name__)@ posts.route("/foo")@需要登录def foo():打印(当前用户)线程= th ..
发布时间:2021-05-08 19:25:25 Python