python - Python 2 到 3 - 较慢的线程执行
问题描述
有人可以告诉我线程从 Python 2 到 Python 3 是否变慢了?我目前正在将我的 Python 2 软件转换为 Python 3,但由于我有同时线程,所以现在一切都很滞后。
我的软件基本上是获取数据、显示数据并将其保存到文件中。我开始在给定的线程 A 中执行此操作。然后线程 A 使用线程 B(它通过 API 的回调接收数据,每 1 毫秒接收一次数据,并将其放入队列中;全部在线程 B 中)和文件-编写线程C(通过队列接收数据)。此外,线程 A(在启动线程 B 和 C 之后)还有一个循环,该循环不断地从数据队列中获取 gata 并将其发送以供显示。
所以我注意到,如果我不启动文件写入线程,我的代码就会像鹰一样快。但是,当我初始化它时,它变得像乌龟一样慢(例如,来自接收数据的 API 的回调,每 100 毫秒左右才获取一次数据)。这段代码在 Python 2 中很快,但现在在 Python 3 中很慢,没有改变我的代码中的任何内容。关于如何解决这个问题的任何线索?
PS。我在这里不使用任何 asyncio 的东西。我正在使用 threading.Thread 来初始化我的线程。
解决方案
推荐阅读
- flutter - 如何在页面指示器中导航到下一页
- linux - 管道 sox 输出到 aplay
- postgresql - 在 SQLAlchemy 的 hybrid_property 中使用(加入和选择)Postgres CTE
- reactjs - 两个巢反应路线如何正确?
- codeblocks - 如何修复 Code::Blocks 错误 0xc000007b
- computer-vision - ImportError:无法从“pytorchcv”导入名称“load_mnist”
- php - PHP/MySQL - JSON 中的嵌套组
- wso2 - WSO2 API,总是返回不带“Accept: application/json”标头的 JSON
- routes - Blazor 路由:如何防止通过 URL 直接访问组件
- python - 如果字符串包含特定字符,如何从字符串中删除单词?