加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

你真的相识Python吗?什么场景行使多线程,什么场景行使多历程?

发布时间:2019-08-13 04:17:05 所属栏目:建站 来源:雷那编程
导读:弁言 涉及并发的场景,各人想到行使多线程或多历程办理并发题目; 一样平常环境下,办理多并发场景题目,大都说话回收多线程编程模式(线程是轻量级的历程,共用一份历程空间)。 也同样合用于Python多并发处理赏罚吗? 答:不是的,针对并发处理赏罚,Python多线程和多进

 你真的相识Python吗?什么场景行使多线程,什么场景行使多历程?

弁言

涉及并发的场景,各人想到行使多线程或多历程办理并发题目;

一样平常环境下,办理多并发场景题目,大都说话回收多线程编程模式(线程是轻量级的历程,共用一份历程空间)。

也同样合用于Python多并发处理赏罚吗?

答:不是的,针对并发处理赏罚,Python多线程和多历程是有很大差此外!

Python多线程和多历程差别

Python多线程不能行使CPU多核资源,即统一时候,只有一个线程行使CPU资源,以是行使Python多线程不能算是并发。

假如想要充实操作CPU多核资源,做到多并发,这就必要Python多历程的了!

也就是说:只有Python多历程才气操作CPU多核资源,做到真正的多并发!

Python多线程和多历程应用场景

既然Python多线程不能并发,那存在尚有什么意义呢?

着实Python多线程和多历程有本身的应用场景:

  • Python多线程合用于I/O麋集型场景,如办理收集IO、磁盘IO阻塞题目,譬喻文件读写、收集数据传输等;
  • 而Python多历程更合用于计较麋集型场景,多并发,大量计较使命等。

留意:Python多线程和多历程在平常开拓进程中,必要留意行使,假如行使Python多线程方法处理赏罚计较麋集型使命,它比现实单历程处理赏罚机能还要慢!以是要留意,看场景范例。

再谈Python多线程,全局表明器锁(GIL)

为什么Python多线程不能行使CPU多核资源?

为什么Python多线程在统一时候,只有一个线程行使CPU资源?

正是由于Python有一个全局表明器锁(GIL,全称Global Interpreter Lock),它使得Python多线程无法行使CPU多核资源,担保统一时候只有一个线程在行使CPU资源;当呈现IO阻塞时,解锁,开释CPU资源,其他线程才气申请到锁,行使CPU资源。

Python并发编程

Python多历程编程行使的模块库:multiprocessing模块,是Python内置的多历程处理赏罚库,行使与线程库threading.Thread相同。

Python多线程编程行使的模块库:

  • thread模块 Python内置,较量底层,不保举行使
  • threading模块 Python内置
  • multiprocessing.dummy模块 Python内置

增补:

multiprocessing模块 和 multiprocessing.dummy模块

两者的区别在于:前者是多历程,后者是多线程;可是他们编程接口完全同等;

以是很利便的将代码在多线程和多历程举办切换!

因为篇幅有限,暂不先容编程模块详细行使,往后会开专题补上!

之前清算的Python多线程和多历程思想导图供各人参考:

Python多历程编程

你真的相识Python吗?什么场景行使多线程,什么场景行使多历程?

Python多线程编程

你真的相识Python吗?什么场景行使多线程,什么场景行使多历程?

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读