Thread类的方法和线程的几种状态
yield()
调用该方法让当前线程让出CPU,让CPU去执行其他线程, 不会释放锁并且让该线程回到就绪状态而不是阻塞状态 。yield()方法只会让该线程同优先级的线程得到执行机会。
join()
无参构造方法调用表示等待该线程结束。
sleep()
调用sleep()方法,会阻塞该线程,且且不会释放锁
wait()和notify()
一般配合synchronized使用,当线程执行wait()方法的时候,会释放锁,并进入等待状态,notify执行的时候回唤醒线程知道代码块结束才会释放锁。可以用来实现生产者和消费者。
线程的几种状态
- NEW
- RUNNABLE
- TERMINATED
- WAITING
- BLOCKED
- TIMED_WAITING