并发编程之相关概念(一)

小结一下近期所学。

进程、线程和协程

在理解协程之前,先要弄明白什么是进程和线程。

  • 进程:应用程序启动的实例,拥有打开的文件资源、数据、地址空间,例如打开了一个软件就是启动了一个进程。
  • 线程:是进程的一部分,程序的实际执行者。一个进程至少包括一个主线程。

对于操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。

那什么是协程呢?

  • 协程:是一种比线程更加轻量级的存在,是一个特殊的函数

一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。但是,协程进程、线程是属于不同的维度的。

多个进程或多个线程是可以并行运行的。

一个线程的多个协程的运行是串行的。

协程相对于进程、线程的优势:

  • 协程执行效率极高。因为协程的切换时机是由程序自身控制,不是根据操作系统自己的切换策略,因此,没有和进程、线程类似的切换开销,不存在上下文切换。

  • 不需要多线程的锁机制。因为只有一个线程,在协程中共享资源不需要加锁,只需要判断状态。

同步和异步

  • 同步:就是调用某个东西,调用方得等待这个调用返回结果才能继续往后执行。
  • 异步,和同步相反,调用方不会立即得到结果,而是在调用发出后,调用者可继续执行后续操作,不会像同步一样等待,被调用者通过状体来通知调用者,或者通过回掉函数来处理这个调用。

打比方:

同步:你去商城买东西,你看上了一款手机,能和店家说你一个这款手机,他就去仓库拿货,你得在店里等着,不能离开。

异步:现在你买手机直接去京东下单,下单完成后你就可以做其他事情,)等货到了去签收。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值