Java线程状态
- New:新创建的线程,尚未执行
- Runnable:运行中的线程,正在执行
run()
方法的Java代码 - Blocked:运行中的线程,因为某些操作被阻塞而挂起
- Waiting:运行中的线程,因为某些操作在等待中
- Timed Waiting:运行中的线程,因为执行
sleep()
方法正在计时等待 - Terminated:线程已终止,因为
run()
方法执行完毕
线程Blocked和Waiting的区别?
- Blocked:一个线程即将进入synchronized块,但有另一个线程在同一个synchronized块中执行,第一个线程必须等待另一个线程退出。
- Waiting:一个线程正在等待另一个线程的信号,线程通常使用wait()或者thread.join方法进入该状态,当另一个线程调用notify()方法或死亡后,该线程会被唤醒。
方法&关键字
thread.start()
thread.interrupt()