gpt4 book ai didi

python - Twisted - 该代码是否应该在单独的线程中运行

转载 作者:行者123 更新时间:2023-11-30 23:55:59 25 4
gpt4 key购买 nike

我正在运行一些有 X 个工作线程的代码,每个工作线程每秒从队列中提取任务。为此,我使用twisted的task.LoopingCall()函数。每个工作人员都会满足其请求(抓取一些数据),然后将响应推回到另一个队列。所有这些都是在 react 器线程中完成的,因为我不会将其推迟到任何其他线程。

我想知道是否应该在单独的线程中运行所有这些作业,或者让它们保持原样。如果是这样,如果我每秒从每个线程调用 task.LoopingCall 会有问题吗?

最佳答案

不,你不应该使用线程。您不能从线程调用LoopingCall(除非您使用reactor.callFromThread),但这不会帮助您使代码更快.

如果您发现性能问题,您可能需要分析工作负载,找出 CPU 密集型工作的位置,然后将该工作放入由 spawnProcess 生成的多个进程。不过,您确实无法跳过找出昂贵的工作在哪里的步骤:您无法在 Twisted 应用程序上撒上任何神奇的 Sprite 灰尘来加快速度。如果您选择的代码部分不是非常密集,并且不需要 CPU 或磁盘等阻塞资源,那么您会发现将工作转移到不同进程的开销可能会超过将其放置在那里的任何好处。

关于python - Twisted - 该代码是否应该在单独的线程中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com