同步异步、串行并行并发、阻塞非阻塞、进程线程协程概念的简单理解及区分

同步、异步
  • 同步指调用请求发送给被调用者,需要等被调用者返回结果之后才能继续做其它事情。
  • 异步指当调用请求发出给被调用者后,调用者不用等待到返回的结果就可以直接继续其它事情。
  • 同步和异步描述的是消息通信机制,是跟消息有关的描述用语。
  • 同步异步也是是否能开启新进程或线程的前提。
串行、并行
  • 串行和并行描述任务的执行方式。
  • 串行表示各个任务按照顺序执行。
  • 并行则是任务可以同时执行。注:异步是并行的前提,注意区分之间的区别。
并发、并行
  • 并发与多线程概念对应,表示在某一时段有多任务运行,但在某个确定时刻却只有一个任务在运行。多个运行的任务在不同时段互相切换,表现出同时在运行的状态。
  • 并行同上,表示同时执行多个任务的能力。
阻塞、非阻塞
  • 阻塞非阻塞用于表示调用结果返回进程或线程之前的状态。
  • 阻塞表示进程或线程不能继续运行,被挂起,非阻塞则表示进程线程可以继续运行。
  • 阻塞、非阻塞和同步、异步很容易搞混,阻塞状态描述的是进程或线程在等待消息返回时的状态,同步和异步则用于描述整个程序的消息通信机制。
进程、线程、协程
  • 进程是线程协程的基础,只有开启了进程,在进程中才能生出线程或者协程,因此进程也被成为线程的容器。
  • 进程即某个程序运行的实例,在系统中拥有唯一的进程号。程序运行最小的执行单元是进程中的线程,没有额外设置线程时,程序默认只产生一个主线程。
  • 由于具有GIL(全局解释器锁),因此python即使使用多线程,但实际上是类似于并发的,即每个进程只能使用一个核,多个线程在获取GIL后不断地交替运行。
  • 多线程在I/O密集型任务中还是很适合(如爬虫等),多进程则适用于CPU密集型。
  • 协程是对线程进行操作,使用协程可以自己进行类似多线程的操作,但是线程间的切换是由程序本身控制的。这样就不用花时间在线程切换上,一定程度上提高了程序运行效率。

内容都是在网上读了之后自己整理的,可能会出错,如果有错误的话请提出来,我即刻修改!

参考:【python】python进程、线程、协程和什么时候使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值