77. 查看线程的运行状态
题目描述
题目:线程有以下6种状态:新建、运行、阻塞、等待、计时等待和终止。
new 新线程时,线程处于新建 状态。
调用 start() 方法时,线程处于运行状态。
当线程需要获得对象的内置锁,而该锁正被其他线程拥有,线程处于阻塞状态。
线程等待其他线程通知调度表可以运行时,该线程处于等待状态。
对于一些含有时间参数的方法,如 Thread 类的 sleep() 方法,可以使线程处于计时等待状态。
当 run() 方法运行完毕或出现异常时,线程处于终止状态。
实现:查看线程的运行状态。
解题思路
创建一个类:ThreadState,实现 Runnable 接口
定义3个方法:
- waitForASecond():使当前线程等待0.5秒或其他线程调用 notify() 或 notifyAll() 方法
- waitForYears() :使当前线程永久等待,直到其他线程调用 notify() 或 notifyAll() 方法
- notifyNow():唤醒由调用 wait() 方法进入等待状态的线程
使用 Thread 类的 getState() 方法,可以获得线程的状态。
版权声明:本文为weixin_43344151原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。