问题标签 [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.
python - Django 会话线程安全吗?
我将字典存储在可由多个线程访问的 Django 会话中。所有线程都可以更新该字典,线程还从字典中获取值以运行进程。我想知道 Django Session 是线程安全的还是我必须使用锁或信号量?
典型例子:
是否有可能在Point2
更新后的会话中更新线程字典Point1
也更新它,然后我stop
要退出的线程丢失。
更多信息
一个 ajax 请求启动四个线程,这些线程从 4 个不同的 url 下载样本。为什么我使用线程?因为我想向用户显示当前正在下载哪些样本以及剩下哪些样本。所有线程都将在会话中更新其字典中的状态。线程启动后,我每两秒发出一次 ajax 请求,并从会话中获取字典并读取线程的当前状态。但是这个想法失败了,因为线程独立于请求及其会话。每个 ajax 请求肯定都有它的会话,但我不能将该会话传递给线程,因为当它们一旦开始时,它们就独立于世界其他地方(也许我可以传递它,但我可能无法以最快的速度传递它,处理正在由线程)。所以为了解决这个问题,我选择缓存框架而不是会话。因为缓存可以从任何地方访问。线程将它们的状态存储在字典中并放回缓存中,每两秒我从缓存中取出字典并读取状态。根据我的经验,还有一件事缓存不是线程安全的。所以对于四个线程,我分别使用了四个字典。
python - 具有并发性的 Python 线程
我在尝试学习 python 中的线程时编写了以下代码。
我试图获得 Thread-1 和 Thread-2 同时启动的输出。IE打印
线程 1 的东西,线程 2 的东西,线程 1 的东西,线程 2 的东西,而不是
线程 1 的东西,线程 1 的东西,线程 1 的东西,线程 1 的东西,线程 2 的东西,线程 2 的东西,线程 2 的东西,线程 2 的东西
相反,Thread-2 仅在 Thread-1 之后开始。我已经检查了在线示例,但我不明白我在机械上做错了什么。
python-3.x - 多个线程需要多个管道
我最近询问如何让 python shell 获得子进程输出。并得到了非常有用的回应 - 即 为 POpen 提供一个 stdout=subprocess.PIPE
然后使用 p.stdout.readline() 并将结果提供给 print()
但是,我担心当我同时从多个线程调用此 POpen 时会发生什么。
相同的 subprocess.PIPE 被馈送到每个 POpen。延伸到每个 readline 都从两个子流程中获取结果。
除了得到一些古怪的结果外,每个循环(其中的行:)
似乎要等到两个线程子进程都完成后再继续
这不是我想要的。
- 那么有没有一种方法可以让我的一个管道(每个线程一个),以便我可以依赖每个线程完全独立?
提前致谢
python - python中的并行性无法正常工作
我正在使用 python 2.7 在 gae 上开发一个应用程序,一个 ajax 调用从 API 请求一些数据,单个请求可能需要大约 200 毫秒,但是当我打开两个浏览器并在非常接近的时间发出两个请求时,它们需要的时间超过双倍,我尝试将所有内容都放在线程中,但它没有工作..(当应用程序在线时会发生这种情况,而不仅仅是在开发服务器上)
所以我写了这个简单的测试来看看这是否是python中的一个问题(在忙等待的情况下),这里是代码和结果:
mac os x, core i7 (4 cores, 8 threads), python2.7上的结果:
这太令人震惊了!!如果单个线程需要 5 秒来执行此操作.. 我认为同时启动两个线程将需要相同的时间来完成这两个任务,但它几乎需要三倍的时间.. 这使得整个线程的想法毫无用处,因为按顺序进行会更快!
我在这里想念什么..
python - Python 中的线程:Python 'args' 是此函数的无效关键字参数,为什么?
我已经为 Python 中的线程编写了代码。
它抛出下面的错误。
我应该如何解决这个错误?
如果我运行此代码,我会收到以下错误。
我在这里犯了任何错误,我需要包含任何文件
我应该如何解决这个错误?
python - 具有按需触发的周期性 Python 线程
我有简单的 PyGTK 应用程序。由于我必须运行多个定期任务来获取一些数据并刷新 GUI,所以我扩展了 Thread 如下:
我在应用程序引导程序上启动线程,将它们保存在某个列表中并在退出前取消它们。这非常完美。
但是现在我想添加刷新按钮,这将强制其中一个线程立即运行,而不是等待一段时间才能运行,如果当前没有运行的话。
我尝试通过将 bool var 添加到 MyThread 来指示线程是否正在运行(在 _run 之前设置,完成时重置),然后如果未运行则只调用 MyThread._run() 来做到这一点,但这会导致我的应用程序成为无响应和 _run 任务永远不会完成执行。
我不确定为什么会这样。解决此问题的最佳方法是什么?如果我可以在后台运行刷新,这样它就不会阻塞 GUI,那也很好。
也许调用 run 并将秒数传递到 1 以便计时器可以更快地触发它?
python - 在 python 中使用多个 telnet 连接线程的超时和高 cpu 负载问题
我想在 python 中使用线程连接到多个 telnet 主机,但我偶然发现了一个我无法解决的问题。
在 MAC OS X Lion / Python 2.7 上使用以下代码
一般来说,它可以工作,但是任何一个线程(并不总是同一个)需要很长时间才能连接(大约 20 秒,有时甚至会超时)。在非常长的连接时间内(在全本地网络中),cpu 负载也上升到 100%。
更奇怪的是,如果我只使用数组中的一个线程,它总是可以完美运行。所以肯定跟多线程的使用有关系。
我已经为所有 IP 地址添加了主机名条目以避免 DNS 查找问题。这并没有什么不同。
在此先感谢您的帮助。
最好的祝福
森西
python - 使用 python 线程控制 http 流
我正在实现一个同时消耗几个 http 流的应用程序。所有线程(每个线程一个 pycurl 对象)都在同一个循环中生成。诀窍是如何构建一个适当的架构来处理重新连接。
创建一个单独的控制器线程以某种方式检查哪些连接不活动或需要强制重新连接是一种好习惯吗?
或者可能应该在单独的进程中完成这样的任务?
python - 这是共享动态 ConfigObj 文件的一种不错的方式吗?
我有几个 python 进程可以监视物理 IO 并对其采取行动。例如,如果电流过高,则关闭电机。他们需要让彼此知道他们为什么做了某事,所以我认为共享文件可能是一个简单的解决方案。各种进程可以写入这个文件,而其他进程需要知道它何时被写入。我已经将 ConfigObj 用于静态配置文件,所以我想尝试一下动态文件。写入不应该经常发生,可能最多每秒一次,并且通常比这慢得多。我想出了这个似乎有效的例子。
我的问题是是否有更好/更容易/更清洁的方法来做到这一点?
python - 如何在 Python 中获得完整的异常?
我正在用 Python 制作一个 Minecraft Classic 服务器。但是,我的代码中出现以下错误:
这是我的心跳代码:
如何获得完整的 Traceback?