一、线程的生命周期
新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead)。
线程类有以下成员函数:
1.void start();//启动线程
2.void join(); //等待被join的线程执行完成
3.void join(long millis);//等待被join的线程时间最长为millis毫秒,没完成也不再等了。
4.void join(long millis,int nanos);//等待被join的线程的时间最长为millis毫秒加nanos毫微秒(很少用)。
5.static void sleep() //线程休眠millis毫秒 ,进入阻塞状态,让给其他任意优先级的线程。
6.static void sleep(long millis,int nanos); //millis毫秒加naos微秒线程休眠,进入阻塞状态。
7.void yiled();//暂停执行,进入就绪状态,只有优先级与当前线程相同或更高才能获得执行的机会。
8.void setPriority(int newPriority);//设置线程优先级
sleep()和yiled()区别:
sleep()方法暂停当前线程后,会给其他线程执行的机会,不强调优先级。yiled()方法只会给相同或更高的优先级执行的机会。
sleep()进入阻塞状态,yiled()进入就绪状态,很可能暂停之后立即被执行。
sleep()方法声明抛出InterruptedException异常,yiled没有生命抛出任何异常。
sleep()有更好的移植性。