线程具有生命周期,其中包括七中状态,分别为出生,就绪,运行,等待,休眠,阻塞和死亡。
就绪:具备cpu的执行资格,不具备cpu的执行权。
运行:具备cpu的执行资格,具备cpu的执行权。
阻塞,休眠,等待,死亡:不具备执行资格,也不具备执行权。
当调用.wait方法,线程会进入等待状态。wait方法可以加时间也可以不加,但是线程进入等待状态,不会自己醒过来,
必须调用.notify方法或者.notifyAll方法,把线程唤醒。
当你调用sleep方法时候,需要一个参数用于指定该线程休眠的时间。
使用sleep方法的时候会抛出InterruptedException异常,所以要把sleep方法放入try-cartch中。
那么为什么不在方法声明中抛出异常呢?
因为抛出,就是在run方法抛出,run方法不是自定义的,而是重写了Runnable的run方法,在Runnable接口都没有抛出,所以你也不可能抛出,必须处理。