进程,线程,协程,纤程初步猜测

   日期:2020-09-07     浏览:84    评论:0    
核心提示:听了一节马士兵公开课,记录一下笔记什么是进程,什么是线程进程是操作系统分配资源的基本单位线程是操作系统进行运行调度的基本单位线程是不是越多,效率越高cpu算力有极限,当线程数量过多,线程切换时间消耗反而大于多线程优化时间多线程在io密集型程序中表现较好,对于运算密集型程序,多线程提升效率不明显什么是纤程,什么是协程纤程和协程的概念是go兴起了之后开始流行的以jvm为例,jvm对操作系统来说就是一个app。在jvm中起一个java的线程,在操作系统中是不是会启动一个对应的线程答案:是,
  1. 什么是进程,什么是线程
    进程是操作系统分配资源的基本单位
    线程是操作系统进行运行调度的基本单位

  2. 线程是不是越多,效率越高
    cpu算力有极限,当线程数量过多,线程切换时间消耗反而大于多线程优化时间
    多线程在io密集型程序中表现较好,对于运算密集型程序,多线程提升效率不明显(进行io,网络传输时等活动时,不需要cpu,多线程机制可以释放cpu去其余线程进行操作,本线程等待期间进行io传输等操作。而运算需要cpu,多线程只是cpu在不停切换而已,在切换期间本线程的任务也没有其余进展)

  3. 什么是纤程,什么是协程
    https://www.kancloud.cn/golang_programe/golang/1146058
    协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。

    纤程(Fiber)是一种最轻量化的线程。它是一种用户线程。

    协程和纤程的调度都是用户通过代码在程序中进行控制的,而不是像线程那样,是系统内核进行调度控度,因此其效率更高。关于为什么同系统内核打交道效率低https://www.it610.com/article/1295251638604341248.html
    因为是代码中进行调度,也不需要像多线程一样考虑变量安全的问题。

    协程(coroutine)和纤程(fiber)的主要区别点在于:调度
    如果还是原来线程在执行,那么就是coroutine(在一个线程上进行调度)
    如果存在有被其他线程所执行的可能,那就是fiber(在线程池中进行调度)

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服