有 4 中阻塞情况,对应的解决办法分别是:
1. 执行 sleep (int millsecond) 方法,使当前线程休眠,进入阻塞状态。
解决:当指定的时间到了后,线程进入就绪状态。
2. 执行 wait () 方法,使当前线程进入等待阻塞状态。
解决:当使用 nofity () 方法唤醒这个线程后,它进入就绪状态。
3. 线程运行时,某个操作进入阻塞状态,比如执行 IO 流操作 (read ()/write () 方法本身就是阻塞的方法)。
解决:只有当引起该操作阻塞的原因消失后,线程进入就绪状态。
4. join () 线程联合: ,使用 join () 方法,礼让造成的阻塞。
解决:当某个线程等待另一个线程执行结束后,才能继续执行时