为什么有人说 Python 的多线程是鸡肋
1个回答
展开全部
Python多线程最多占用一个逻辑核心。
如果你每个线程都是io密集型(阻塞多于计算),也就是说单独一个线程几乎大段时间没事儿干,不能充分利用cpu,那可能多线程跑在一个核心上还有意义;
如果每个线程都是计算密集型(几乎都是计算任务),那一般情况1个线程就可以充分利用一个逻辑核心,多个线程反而增加了切换开销。从这个角度上说Python的多线程确实鸡肋。
多进程可以解决这个问题,因为进程不是由Python管理的,而是由系统管理的,系统会合理分配CPU资源。
如果你每个线程都是io密集型(阻塞多于计算),也就是说单独一个线程几乎大段时间没事儿干,不能充分利用cpu,那可能多线程跑在一个核心上还有意义;
如果每个线程都是计算密集型(几乎都是计算任务),那一般情况1个线程就可以充分利用一个逻辑核心,多个线程反而增加了切换开销。从这个角度上说Python的多线程确实鸡肋。
多进程可以解决这个问题,因为进程不是由Python管理的,而是由系统管理的,系统会合理分配CPU资源。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询