线程的生命周期:看这个图就ok了
虽然多线程看起来像同时执行,但事实上在同一个时间点上只有一个线程被执行,只是线程之后间的切换较快,所以才会使人产生线程是同时进行的假象。
在Windows操作系统中,系统会为每个线程分配一小段CPU时间片,一旦CPU时间片结束就会像当前线程换为下一个线程,即使该线程没有结束。
1.从执行到就绪:
调用sleep();方法、调用wait();方法、等待输入/输出完成。
2.从就绪到执行:
调用notify();方法、调用notifyAll();方法、调用interrupt();方法、线程休眠时间结束、输入/输出结束。