文章摘要:java线程控制手段有哪些 java线程控制方法
java中控制线程的手段有:1.join()方法;2.sleep()方法;3.守护线程;4.改变线程的优先级; […]
java中控制线程的手段有:1.join()方法;2.sleep()方法;3.守护线程;4.改变线程的优先级;
java中控制线程的手段有以下几种
1.join()方法
java中join()方法的作用是让一个线程等待另一个线程完成,可以在通过一个线程中调用其他线程的join()方法,调用线程被阻塞,需要等待join线程执行完毕,才可以再次调用线程。
//等待线程消亡
public final void join()
//等待线程消亡,最多等millis毫秒。
public final synchronized void join(long millis)
2.sleep()方法
java中sleep()方法的作用是使用线程进入阻塞状态,即使当前cpu闲置,线程也会进入阻塞状态。
//让当前线程暂停millis毫秒,并进入阻塞。
public static native void sleep(long millis)
//让当前线程暂停millis毫秒+nanos纳秒,并进入阻塞
public static void sleep(long millis, int nanos)
3.守护线程
java中守护线程是指在后台运行的线程,其目的是为其他线程提供服务,可以使用t.setDaemon(true)函数设置守护线程。
//设置为守护线程
t.setDaemon(true);
//启动守护线程
t.start();
//主线程睡眠100毫秒
Thread.sleep(100);
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+" : "+i);
}
}
4.改变线程的优先级
java中每个线程在执行时都具有优先级,且默认优先级与创建它的父线程的优先级相同,默认情况下,main线程具有普通优先级。
//线程可有的最小优先级
public final static int MIN_PRIORITY = 1;
//默认优先级
public final static int NORM_PRIORITY = 5;
//线程可有的最大优先级
public final static int MAX_PRIORITY = 10;