三分系列:进程线程协程之间区别

2021-04-26 14:37:23 浏览数 (1)

2分钟

3分钟:

进程 线程协程区别?

当系统遇到瓶颈时候,进程 线程 协程 配合使用, 实现一个多线程的Reactor可扩展网络应用。

场景限定:

这里只讨论

一个大任务拆分成多个小任务,从串行执行到并发执行情况。

进程:

进程适合水平扩展,适合一个分布式系统,进程之间传递数据,跨内核,跨主机 切换。

传输时间大于任务本身就不合适。

线程:

线程适合垂直扩展,利用多核,系统多核有上限的,在增加线程 密集cpu计算提升。

线程更适合同时 io计算,和cpu计算任务。例如 视频播放一遍下载视频文件,一遍编解码。

线程之间通行注意线程安全。锁引起线程阻赛。被动切换。

协程:

  • 是单线程更适合io密集
  • 协程能代替 单线程做异步非阻赛,不一样地方 协程想线程一样阻赛调用,遇到阻赛还占用cpu。

更适合协程之间频繁协作。

  • 在遇到io阻赛和协作阻赛情况下更好利用cpu。主动切换。

0 人点赞