温馨提示×

java线程控制手段有哪些

养鱼的猫咪
204
2021-04-20 14:16:01
栏目: 编程语言

java中控制线程的手段有:1.join()方法;2.sleep()方法;3.守护线程;4.改变线程的优先级;

java线程控制手段有哪些

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;

0