Skip to main content
 Web开发网 » 编程语言 » Python语言

既然Python解释器是单线程的,还有进行多线程编程的必要吗?

2021年11月28日570百度已收录

谢小秘书邀请~~

先简单的回答:有必要。

既然Python解释器是单线程的,还有进行多线程编程的必要吗?  python多线程 第1张

首先,线程消耗的是CPU资源如果一个单线程内处理的业务逻辑会占用100%的CPU资源,那么,上了多线程也是没有用的。

但这种情况很少,高CPU占用一般出现在内存计算场景下,或者不良代码中错误的死循环。 正常情况下,CPU占用大于80%就需要进行代码或设计的优化,或者服务器增加资源了。

既然Python解释器是单线程的,还有进行多线程编程的必要吗?  python多线程 第2张

多线程场景适用于解决慢速IO的问题我们绝大部分的计算,都会依赖于很多外部资源IO,如磁盘读写、网络访问、数据库访问... 这些资源的访问速度远远低于CPU的切换速度。如果使用单线程进行操作时,就会长时间的等待IO的返回。造成无效等待,性能低下。

所以即使是Python,为了充分利用CPU资源,提高性能,在通常的业务场景下使用多线程编程也是完全必要的。

多核与Python多实例延续上面的问题,我们知道现在CPU大部分都是多核的,python为了避免单线程只能使用到一个核的问题,是有个multiprocessing 库的,允许创建子进程(子进程数一般与核心数相同),来充分利用CPU资源。

既然Python解释器是单线程的,还有进行多线程编程的必要吗?  python多线程 第3张

↓ ↓ ↓ 喜欢就点赞吧,欢迎各位评论指教,谢谢关注 -- 极迭代!

评论列表暂无评论
发表评论
微信