Java基础篇--由进程到线程的演化

     在20世纪60年代以前,操作系统一直都是以进程作为能独立运行基本单位。

     到20世纪80年代,提出了比进程更小的能独立运行的基本单元---线程。

 

        1、  为什么要设计出线程来?

           早期的计算机只有一个中央处理器,几个进程同时想占用,这是不可能的啊!

           设计者的当时的解决方案: 排队吧,轮流着来呗。这种方案是不是唯一和最好的解决方案呢?

           笔者认为肯定不是:因为这个解决方案的局限在与早期的计算机的硬件。

            

            这种轮流来的解决方案:时间片轮询进度调度算法。

            就是所有运行的进程轮流使用CPU,只不过轮流的使用的时间特别短,就10毫秒左右。

            这样就让用户的所有进程都在不间断的切换运行。

 

                 一个cpu  ,多个进程 ,还要不停的切换。问题就出在这里

           我们知道进程的属性:

           即是拥有系统资源(意味着切换状态需要开销的)的独立单位,同时也是一个独立调度和分派的基本单元。

           cpu 的进程的状态的切换时非常频繁的,但进程又是系统的资源的拥有着。

           这样导致的结果是:进程的切换消耗的大量的系统资源。 着不算进程本身也要系统的资源的。

           进程的弊端:进程本身占用系统资源,进程在状态(就绪-运行-阻塞)切换时还要消耗系统资源。

 

                   于是设计者再想,能不能设计出来一个东西出来:

            这东西可作为独立的调度和分派的基本单元,但不能独自占有系统资源。

            于是又了80年代提出来的线程 。 这个东西就是线程。

            它是一个可以独立调度和分派的基本单元,但不同时作为资源的拥有者。

            这样可以轮流使用CPU ,但不拥有资源,这样在切换状态的时候,不需要开销了。

 

      2、线程带来了什么好处?

          就像上面所说的线程:它是一个可以独立调度和分派的基本单元,但不同时作为资源的拥有者。

          从两方面减少系统的资源开销:1、不占用系统资源。 2、在状态切换的时候不消耗系统资源

          因此线程设计出来的提高了系统吞吐量。

                   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值