关闭

Thread生命周期 (详解)

标签: thread线程
529人阅读 评论(0) 收藏 举报

来讲一下线程(Thread)的生命周期,首先附张图 讲解(请根据图片理解流程)

线程创建有两种方式,1.继承Thread类    2.实现 Runnable接口, 再由new 来实例化一个新的线程

调用start()方法 使线程进入进入就绪状态 由系统CPU调动,自动执行run()方法 开始运行

正常情况下,run()方法执行结束,线程死亡,

运行过程中,执行sleep()方法后,当前线程会进入睡眠状态,不考虑优先级地让出资源给其他线程,在睡眠结束后,进入就绪状态,

                       执行其他线程的join()方法,会使当前线程挂起,执行其他线程,当其他线程执行完毕,才使当前线程进入就绪状态,

                      执行yield()方法,会将当前资源让给比自己优先级高的线程使用,如果没有比自己优先级高的,则直接进入就绪状态,等待cpu的调用

                       调用对象的wait()方法会使当前线程进入等待状态,当其他对象调用notify(),notifyAll()或interupt()方法后会停止等待,进入阻塞状态

                    施加同步锁也会使当前线程进入阻塞状态,解锁后 当前线程进入就绪状态,继续等待CPU的调用!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6728次
    • 积分:201
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    最新评论