问题标签 [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 - 守护线程解释
在Python 文档 中它说:
可以将线程标记为“守护线程”。这个标志的意义在于,当只剩下守护线程时,整个 Python 程序就退出了。初始值继承自创建线程。
有没有人对这意味着什么有更清晰的解释,或者有一个实际示例显示您将线程设置为的位置daemonic
?
为我澄清一下:所以你不会将线程设置为的唯一情况daemonic
是,当你希望它们在主线程退出后继续运行时?
python - 函数调用超时
我在 Python 中调用一个函数,我知道它可能会停止并迫使我重新启动脚本。
如何调用该函数或将其包装在什么中,以便如果它花费超过 5 秒的时间,脚本将取消它并执行其他操作?
python - Queue.Queue 与 collections.deque
我需要一个队列,多个线程可以将内容放入其中,并且多个线程可以从中读取。
Python 至少有两个队列类,Queue.Queue
和collections.deque
,前者似乎在内部使用后者。两者都声称在文档中是线程安全的。
但是,队列文档还指出:
collections.deque 是无界队列的替代实现,具有不需要锁定的快速原子 append() 和 popleft() 操作。
我想我不太明白:这是否意味着双端队列毕竟不是完全线程安全的?
如果是这样,我可能无法完全理解这两个类之间的区别。我可以看到 Queue 添加了阻塞功能。另一方面,它失去了一些双端队列特性,比如对 in-operator 的支持。
直接访问内部双端队列对象是
x in Queue().deque
线程安全?
另外,当双端队列已经是线程安全的时,为什么队列要为其操作使用互斥锁?
python - 如何在 Python 中获取线程 id?
我有一个多线程 Python 程序和一个实用函数 ,writeLog(message)
它会写出时间戳,然后是消息。不幸的是,生成的日志文件没有说明哪个线程正在生成哪个消息。
我希望writeLog()
能够在消息中添加一些内容以识别哪个线程正在调用它。显然我可以让线程传递这些信息,但这需要更多的工作。是否有一些os.getpid()
我可以使用的线程等价物?
python - 从线程返回值
如何让线程将元组或我选择的任何值返回给 Python 中的父级?
python - 主程序结束时如何终止线程?
如果我有一个无限循环中的线程,有没有办法在主程序结束时终止它(例如,当我按Ctrl+时C)?
python - 如何在 Python 中使用线程?
我正在尝试理解 Python 中的线程。我查看了文档和示例,但坦率地说,许多示例过于复杂,我无法理解它们。
您如何清楚地显示为多线程划分的任务?
python - 在 python 脚本中增加吞吐量
我正在通过 dig 处理来自 DNSBL 的数千个域名列表,创建一个包含 URL 和 IP 的 CSV。这是一个非常耗时的过程,可能需要几个小时。我的服务器的 DNSBL 每十五分钟更新一次。有没有办法可以增加我的 Python 脚本的吞吐量以跟上服务器的更新?
编辑:脚本,根据要求。
python - 如何将这个多线程 python 脚本分解为“块”?
我正在根据使用 urllib 从 Siteadvisor 获取的结果将 100k 域名处理成 CSV(我知道,这不是最好的方法)。但是,我当前的脚本创建了太多线程并且 Python 遇到了错误。有没有办法我可以“分块”这个脚本一次做 X 个域(比如 10-20)来防止这些错误?提前致谢。
编辑:新版本,基于 andyortlieb 的建议。
python - 为什么我不能在 Python 的新线程中创建 COM 对象?
我正在尝试从 Python 的新线程中的 dll 创建一个 COM 对象 - 所以我可以在该线程中运行消息泵:
这是我得到的错误跟踪:
有任何想法吗?