七种状态
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():唤醒锁池里所有的线程。需要在同步快中调用。
网友评论