为了账号安全,请及时绑定邮箱和手机立即绑定

运行多个代码比运行一个代码更快吗?

运行多个代码比运行一个代码更快吗?

胡子哥哥 2024-01-15 15:36:19
我的问题相当简单:如果我有一段代码,其中有一个迭代 150 次的 for 循环。将其分成 3 个文件,每个文件循环迭代 50 次是不是更快?如果是这样,我是同时运行 3 个代码还是一次运行一个?另一种选择可能是multiprocessing在这 3 个文件中使用 python,但出现了同样的问题,我是一次性运行它们还是一次运行一个?
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

这取决于。

在 cpython 中,全局解释器锁 (GIL) 确保给定进程中一次只有 1 个线程可以运行 python 代码。如果您的循环受 CPU 限制,则在单个进程中添加线程不会加快速度。如果您的循环由于某种原因(例如从磁盘读取数据)而休眠,线程可以加速它。使用多处理,由于 GIL 是针对每个进程的,因此您可以加快处理速度。

多线程和多处理存在开销,包括启动线程/进程、向线程/进程获取数据以及返回结果的成本。根据您所做的事情,这可能比循环本身更昂贵。

因此,这个问题没有通用的答案。它高度依赖于任务。


查看完整回答
反对 回复 2024-01-15
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信