问题标签 [python-multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2002 浏览

python - Tkinter 海龟和线程

世界!在 python 中的海龟图形中,可以创建各种 Turtle 对象并使用它们的方法来操作它们,向前、向后……我想用线程进行实验,所以我编写了一个名为 MyTurtleManipulator 的线程类。

通过实验,我希望看到所有海龟“同时”随机移动,但是当我运行程序时,我得到了这些错误:

这是什么意思,“主线程不在主循环中”是什么意思。谢谢您的帮助。

0 投票
2 回答
7809 浏览

multithreading - 如何在读取流时正确终止 Python3 线程

我正在使用线程从流(/dev/tty1)中读取字符串,同时处理主循环中的其他内容。我希望线程在按下 CTRL-C 时与主程序一起终止。

通常的解决方案 - run() 循环内的布尔变量 - 在这里不起作用。处理此问题的推荐方法是什么?

我可以只设置 Daemon 标志,但是我将无法使用可能在以后证明有价值的 quit() 方法(进行一些清理)。有任何想法吗?

0 投票
3 回答
561 浏览

python - Python 多线程 是还是不是?

我一直在尝试编写一个简单的python应用程序来实现一个工作队列我发现的每个关于线程的网页都有一些随机的人评论它,你不应该使用python线程,因为这个或那个,有人可以帮我吗?Python线程是怎么回事,我可以使用它吗?如果是,哪个库?标准的就够了吗?

0 投票
3 回答
10369 浏览

python - numpy 和全局解释器锁

我即将编写一些计算密集型 Python 代码,这些代码几乎肯定会在numpy的线性代数函数中花费大部分时间。

手头的问题令人尴尬地平行。长话短说,对我来说利用它的最简单方法是使用多个线程。主要的障碍几乎肯定是全局口译员锁(GIL)。

为了帮助设计这一点,有一个心智模型会很有用,在这个模型中,numpy操作可以预期在其持续时间内释放 GIL。为此,我很感激任何经验法则、注意事项、指针等。

万一这很重要,我在 Linux 上使用 64 位 Python 2.7.1,带有numpy1.5.1 和scipy0.9.0rc2,使用 Intel MKL 10.3.1 构建。

0 投票
4 回答
123275 浏览

python - 列表是线程安全的吗?

我注意到通常建议使用具有多个线程的队列,而不是列表和.pop(). 这是因为列表不是线程安全的,还是出于其他原因?

0 投票
2 回答
35693 浏览

python - python 3中的thread.start_new_thread发生了什么

我喜欢将函数转换为线程而无需定义类的不必要行的能力。我知道_thread,但看来您不应该使用_thread。python 3是否有等效于thread.start_new_thread的良好实践?

0 投票
1 回答
436 浏览

python - 多个线程,每个线程都有不同的代理设置

是否可以使用不同的代理设置同时运行多个线程。在线程中调用它可以吗:

如果您在从线程调用的函数中调用相同的代码,那可以吗?

谢谢

0 投票
3 回答
2211 浏览

python - 亚马逊云实例之间的 Python 多处理

我希望在几个 Amazon EC2 实例上运行一个长时间运行的 python 分析过程。该代码已经使用 pythonmultiprocessing模块运行,并且可以利用单台机器上的所有内核。

分析是完全并行的,每个实例不需要与任何其他实例进行通信。所有的工作都是“基于文件的”,每个进程单独处理每个文件......所以我计划在所有节点上安装相同的 S3 卷。

我想知道是否有人知道设置多处理环境的任何教程(或有任何建议),以便我可以同时在任意数量的计算实例上运行它。

0 投票
1 回答
1579 浏览

python - python threading 和 tkinter.tix.NoteBook 选项卡在第一个打开的选项卡之外无法访问

在以下示例中,除了默认打开的日志选项卡之外,我无法写入其他选项卡:

控制台回溯:

每当我尝试在 gui.SettingsFrame 或 gui.ProgressFrame 中创建小部件时,都会发生这种情况。如果我增加 main() 中的 time.sleep(1) 并在 tix.Label 部分开始之前单击选项卡,则代码可以工作,因为现在调用了 tabs 命令。

那么,如何提前声明 gui.SettingsFrame 和 gui.ProgressFrame 呢?在到达 main() 中的 tix.Label 之前,我可以通过代码中的选项卡吗?

注意:我需要它是线程化的,它是一个更大程序的一部分,它执行十几个不同的事情,并且是多线程的并且有多个进程。

谢谢

编辑1: 我可以向类添加方法而不是引用框架:

并在 main 中调用它们:

但结果是一样的:

编辑 2 : Bryan Oakley的一个非常好的快速和简单的修复:

谢谢 !

编辑 3:以下是线程安全的实现。我添加了一个奖励计时器:

这可能是将线程 tkinter gui 实现到控制台应用程序的最简单方法。gui.print_queue.put() 替换了 print() 并且可以通过调整 rate 变量在 print_label(self) 中修改 gui 更新的速率。

享受 !

0 投票
2 回答
50137 浏览

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

假设我有一个看起来像这样的函数:

现在我想使用该函数创建一个线程,并给它 arg2 但不是 arg3。我正在尝试如下:

上面的代码给了我一个语法错误。如何修复它以便可以将参数作为 arg2 传递给线程?