多线程总结一

 这几天项目不急,觉得自己基础不是很牢固,所以花了点时间做一做多线程方面的总结。

  1.          线程的生命周期  

     2.           对于上面的生命周期进行一波解释  
            1
) 新建状态   我的理解就是线程的创建
          2
)就绪状态  我的理解就是线程准备完毕,就是告诉计算机为我准备好了,可以让我开始执行了,但是不一定马上就                                 会执行你
           3
) 执行状态   正式的开始执行相关的代码,也就是你需要做的事情,这个最复杂,可能会发生三种情况

                            第一可能会被阻塞,如sleep操作,wait操作,yield操作等

                            第二可能会进入就绪状态,比如yield操作后发现自己是最高优先,那么就会重新开始执行本线程

                            第三 可能再次进入到就绪状态,可能阻塞时间非常短暂,那么可能会进入到就绪状态。

                            第四 正常操作进入到死亡状态。

          4) 死亡状态:线程被终止。   

      3.            对于多线程需要了解的几个常识性问题

                       1)并发与并行

                               并发:也就是逻辑意义上面的并发,让用户看起来是2个或者多个线程同时在做,实际上是以时间片轮转的方式进行的,只是说速度非常的快,给人的感觉就像是有多个在并行执行,也有人解释说一次处理很多的请求。宏观上的并行,底层实际上是以时间片进行轮转。

                               并行:真正意义上的并行,无论是宏观还是微观上面都是真正意义上的并行。

                               那么多线程究竟是并发还是并行。分情况:如果你有4个处理器并且处于空闲状态,那么你的程序只开启了4个线程,那么这就是真正意义上的并行。如果你的线程大于四个或者说线程数大于处理器空闲的状态,那么此时就是并发状态。也有可能并发和并行同时进行。但是如果你的硬件是单处理器,那么毫无疑问你只能是并发状态。

                                我们使用java进行开发的时候,至少开启了2个线程,一个是主线程,一个是垃圾收集器的线程。

                        2)进程与线程之间的区别

                                  进程:指的是我们正在运行的程序。以前的电脑都是单进程电脑(只能开一个任务的年代),什么多任务处理器之类的东西,如果想要详细了解去翻翻操作系统吧。

                                   线程:一个进程可能包含有多个线程,一般情况下都包含多个。线程:指的是一个执行流程。最经典的例子就是大学时候学习的电影院卖票的例子。3个工作人员卖票实际上就是开启了3个线程。

                                  以上就是多线程的一些基本的理论知识。接下来将会是3种在java中实现多线程的方案,以及其中的优缺点。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值