纵有疾风起
人生不言弃

线程的七种状态

七种状态

1:新建状态(New)

Thread thread = new Thread();

2:就绪状态(Runnable)

  thread.start();

3:运行状态(Run)

//抢占到CPU资源,run()方法得到执行

4:等待状态(Wait)

thread.wait();

5:阻塞状态(Blocked)

thread.join();

6:超时等待()

thread.sleep(long time);

7:死亡状态

//线程正常执行完、调用stop()方法、抛出异常或ERROR。

状态切换

线程的七种状态插图
运行状态切换

1:start():调用start()方法会使得该线程开始执行,正确启动线程的方式。使线程由新建(New)状态切换到就绪状态(Runnable)状态,参与CPU资源的抢占。
2:wait():调用wait()方法,进入等待状态,释放资源,让出CPU。需要在同步快中调用。
sleep():调用sleep()方法,进入超时等待,不释放资源,让出CPU
stop():调用sleep()方法,线程停止,线程不安全,不释放锁导致死锁,过时。
join():调用sleep()方法,线程是同步,它可以使得线程之间的并行执行变为串行执行。
yield():暂停当前正在执行的线程对象,并执行其他线程,让出CPU资源可能立刻获得资源执行。
yield()的目的是让相同优先级的线程之间能适当的轮转执行
notify():在锁池随机唤醒一个线程。需要在同步快中调用。
nnotifyAll():唤醒锁池里所有的线程。需要在同步快中调用。

转载:https://www.cnblogs.com/dc-earl/p/9594162.html

文章转载于:https://www.jianshu.com/p/ffa6d5b76b62

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » 线程的七种状态
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录