问题标签 [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 投票
1 回答
57 浏览

python - 在 Python 中访问未绑定到变量的对象

一段时间以来,我一直在学习使用 Python 进行编程,而我目前的项目是一个下载管理器,它的 GUI 是用 wxPython 编写的。我有 DownloadThreads,继承自 threading.Thread,我实例化了不同数量的:

因为我要创建的线程数量不固定,所以我无法将DownloadThread对象分配给变量,所以我看不到如何访问它们的方法,例如x.isAlive(). 我考虑过动态创建变量,但这似乎是一个非常糟糕的主意。我将如何访问这些“匿名”对象(术语?),或者我是不是走错了路?感谢您的阅读,如果这真的很简单/显而易见,我们深表歉意。

0 投票
6 回答
22582 浏览

python - Python 线程挂起

我有一个遵循标准范例的简单线程 Python 程序:

队列中填充了大约 1000 个 url,并且HTTP GET<do Internet search and print output/>. 问题是,在处理了大约 500-700 个条目(只需要几秒钟)之后,程序总是永远挂起,没有输出,没有异常,什么都没有。

我试过requests, urllib2, urllib3,httplib2HTTP GET没有任何改变。

如何调试挂起的线程 Python 程序?

顺便说一句,我在 Ubuntu 11.10(64 位)下使用 Python 2.7。

编辑

当盯着挂起进程的gdb跟踪时,我和以前一样一无所知——

0 投票
2 回答
146 浏览

python - thread.join() 被调用,它不是我

在创建 threading.Thread() 的子类时,我已经覆盖了 .join() 方法。当我用测试脚本测试我的类时,它工作正常,但是在我的程序中使用它时,thread.join) 方法被一遍又一遍地调用,但不是我在做。什么叫这个方法?据我所知,没有异常被抛出。使用检查调用函数似乎是 _exitfunc 但我找不到任何关于此的信息。

我的代码很长,但可以在这里找到

0 投票
0 回答
221 浏览

python - 使用多处理运行进程并使用 django 服务其状态

我想用 django 提供一个页面,但我希望内容随着时间的推移而发展,无论该页面是否被请求。

我最初的计划是views.py启动一个多处理进程,它将无限循环并更新内容。我想它需要与启动过程有一些共享状态,以便 django 可以获取内容以将其提供给客户端。

我发布这个问题是为了看看人们是否可以发现我的方法有一些明显的错误,或者提出一个明显更好的方法。

0 投票
1 回答
1055 浏览

python - 在 python 中线程化可序列化操作比顺序运行它们要慢

我试图在 python 中同时运行两个长时间运行的操作。它们都对相同的数据集进行操作,但不对其进行修改。我发现线程实现的运行速度比简单地一个接一个地运行要慢。

我创建了一个简化的示例来展示我正在经历的事情。

运行此代码并注释第 46 行(使其执行线程操作),导致我的机器上的运行时间约为 1:01(分:秒)。我看到两个 CPU 在整个运行时间内以大约 50% 的速度运行。

注释掉第 47 行(导致顺序计算)会导致运行时间约为 35 秒,其中 1 个 CPU 在整个运行时间中固定为 100%。
两次运行都导致完成了两个完整的计算。

0 投票
1 回答
2733 浏览

python - 在 Python 的线程中使用全局变量

我处于一种情况,我想根据一个变量将一个线程放入一个循环中,该变量在线程中的一个被调用函数中被更改。这就是我想要的。

现在运行测试调用一个函数,说 A 和 A 调用 B 和 B 调用 C。

这就是我想做的,但我无法解决这个问题。如果我尝试打印错误,我会收到代码错误。

有人可以帮我吗?

我是一个初学者,需要克服这个

0 投票
0 回答
85 浏览

python - 如何挂起线程而不杀死它

我有几个线程同时执行。我想实现一个函数来保存我的线程的状态并在知道我不想杀死它的情况下停止它(没有 Thread.stop ()),因为我还寻求实现一个允许污渍继续我的线程的函数(因为停止的状态)

0 投票
1 回答
635 浏览

java - Jython、子进程和 msvcrt ......有可能吗?

我正在尝试围绕 Python 模块构建一个包装器,以将其嵌入到我的 java 代码中。

看起来这个模块使用了很多技巧,比如子进程、线程等等

(实际上它本身就是一个模块,它控制按原样提供的 C 实用程序并且仅作为二进制文件,我试图避免重新编码这个 python 包装器已经提供的内部逻辑和其他工具的成本过高)

顺便说一句,当我从 Java 实例化我自己的包装器时,我得到:

如果我查看我的硬盘,没有 msvscrt.py 它应该在哪里生活?

我正在启动我的 jython:

0 投票
2 回答
18464 浏览

python - 对于 Python / Linux,最大线程限制实际上是一个不相关的问题吗?

我正在处理的当前 Python 应用程序需要使用 1000 多个线程(Pythons 线程模块)。并不是说任何单个线程都以最大 cpu 周期工作,这只是我正在创建的 Web 服务器负载测试应用程序。IE 模拟 200 个 Firefox 客户端,它们都渴望进入 Web 服务器并下载小型 Web 组件,基本上模拟了在几秒而不是微秒内操作的人类。

因此,我正在阅读各种主题,例如“python 在 Linux/windows 上支持多少线程等,我看到了很多不同的答案。一位用户说这都是关于内存的,而 Linux 内核默认情况下只是搁置一边8Meg 用于线程,如果超过了,那么线程开始被内核杀死。

一个人说这对 CPython 来说不是问题,因为无论如何一次只有 1 个线程在运行(因为 GIL)所以我们可以指定大量线程???这件事的真相是什么?

0 投票
0 回答
328 浏览

python - 俳句中的主题

我在虚拟机中运行 Haiku 桌面,并编写了一个线程 python 程序。该程序将在每次执行时创建线程。前几次它运行良好,但如果我继续运行它,即使线程完成,它们似乎也不会退出。再次按开始会显示类似 Thread-93 的内容,即使它应该是 Thread-1。Python 没有 stop() 函数或任何东西。在其他操作系统上,这似乎不是问题。如何让线程消失并释放 Haiku 中的这些资源?