Java多线程编程基础2

一、线程的生命周期

新建(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()有更好的移植性。

猜你喜欢

转载自blog.csdn.net/qq_36790143/article/details/79897655
今日推荐