1,System.exit(1);
这种情况下, 当前方法执行线程 waiting 状态
2, 阻塞
想都别想了, 阻塞的话, 线程也是 waiting 状态
3, 死锁 (互相等待)
一开始是 runnable, 哪怕被锁线程方法 1000 毫秒, 一样到最后, 等待线程的状态变为 BLOCK, 这是一个重要结论
4, 无限循环
无限 for 循环, 线程状态为 runnable
5, 如果方法里面有 sleep 延时 --Thread.sleep(1000)
则当前线程是 runnable, 在没有调用 Thread.sleep(1000) 之前, 如果调用了之后, 那么状态就是 TIMED_WAITING
6, 内存溢出, 服务就挂了, 也别妄想什么线程在跑了, 该任务所在的 java 虚拟机上所部署的服务挂了,,, 线程没了, 停了
来源: http://www.bubuko.com/infodetail-3097392.html