多线程
多线程
多线程基本原理
线程的运行状态
线程的状态
- NEW:初始状态,线程被构建,但是还没有调用start方法
- RUNNABLED:运行状态,Java线程把系统中的就绪与运行两种状态都统一为“运行中”
- BLOCKED:阻塞状态,表示线程等待状态,线程因为某种原因放弃了cpu使用权
- 等待阻塞:运行线程执行的wait方法,jvm会把当前线程加入到等待队列
- 同步阻塞:运行的线程在获取对象的同步锁,若该同步锁被其他线程持有,那么jvm会把当前的线程放入锁池中
- 其他阻塞:运行的线程执行Thread.sleep或者t.join方法,或者发出了I/O请求,jvm会把当前线程设置为阻塞状态,当sleep结束,join线程终止,io处理完毕则线程恢复
- WAITING:等待状态
- TIME_WAITING:超市等待状态,超时以后自动返回
- TERMINATED:终止状态,表示当前线程执行完毕
线程的终止
Thread Dump日志分析
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shizeng!