线程的五种状态

1、什么是线程:进程内部的一条执行路径或者控制单元。

2、多线程的实现方式:

       2.1 继承Thread类,复写run()方法,将线程要执行的任务封装在run方法中。具体实现参考博客Thread实现多线程:

            https://blog.csdn.net/jinyouxinzao/article/details/89855812

       2.2 实现Runnable接口,复写run()方法,将线程要执行的任务封装在run方法中。具体实现参考博客Runnable实现多线程

             https://blog.csdn.net/jinyouxinzao/article/details/89856090

       2.3 实现Callable接口,复写call()方法。将要执行的任务封装在call()方法中,具体实现参考Callable实现多线程。

             https://blog.csdn.net/jinyouxinzao/article/details/89856867

3、线程的五种状态

       3.1 新建New:即新创建了一个线程对象。

       3.2 就绪Runnable:线程创建以后,并调用了该对象的start()方法,这是该线程位于可运行池中,变得可运行,但是不一定处于运行状态,可能需要等待CPU使用权,也可能直接运行。

       3.3 运行Running:继续状态的线程获取了CPU使用权,执行线程任务代码。

       3.4 阻塞Blocked:阻塞状态是线程因为某种原因放弃了CPU使用权,暂时停止运行,直到线程进入就绪状态,才可能转到运行状态。阻塞分为三种情况:

           3.4.1:等待阻塞:运行的线程执行了wait()方法,JVM会把线程放入等待池中。

           3.4.2:同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,此时JVM会把该对象放入锁池中。

           3.4.3:其他阻塞:运行的线程执行了sleep()或者join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时时、join()等待线程终止或者超时、或者I/O处理完毕是,线程重新转入就绪状态。

       3.5 死亡Dead:run()方法正常执行完毕,或者因为异常退出了run()或者调用了stop方法(不推介使用这种方法)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值