睡眠
睡眠都是由用户控制的,睡眠恢复则是自动完成的,睡眠时间到了则恢复到就绪态,睡眠时线程不会释放对象锁。
eg: Thread.sleep()
备注:sleep方法属于Thread类
挂起
挂起是由用户控制的,挂起恢复需要用户主动控制,挂起时线程不会释放对象锁。
eg: thread1.suspend() //挂起 thread1.resume() //挂起
备注:suspend、resume均已被废弃,易引发死锁
终止
挂起是由用户控制的,终止一个线程时会强制中断线程的执行,不管run方法是否执行完了,并且还会释放这个线程所持有的所有的锁对象。
eg: thread1.stop()
备注:同suspend,已废弃
阻塞
阻塞是被动的,是在等待某种事件或者资源的表现,一旦获得所需资源或者事件信息就自动恢复到就绪态。
睡眠和挂起是两种行为,阻塞则是一种状态。