public final void setPriority(int newPriority)
优先级参数设置值:1~10,10是最高,5是默认,1是最低
Thread里面定义优先级常量:
int MAX_PRIORITY
线程可以具有的最高优先级。
int MIN_PRIORITY
线程可以具有的最低优先级。
int NORM_PRIORITY
分配给线程的默认优先级。
代码:
Thread t1 = new Thread(new JoinDemo());
Thread t2 = new Thread(new JoinDemo());
t1.start();
t1.setPriority(Thread.MAX_PRIORITY); //等待该线程终止,当主线程长执行到这里时,主线程会处于等待状态,等t1线程执行完后才执行
t2.start();
yield()方法:暂停当前正在执行的线程对象,并执行其他线程。
临时释放线程的执行权,达到线程平均运行的效果
public class JoinDemo implements Runnable{
public void run(){
for(int i = 0; i < 70; i++){
System.out.println(Thread.currentThread().getName() + "-----"+i);
Thread.yield(); //暂停当前正在执行的线程对象,并执行其他线程。
}
}
public static void main(String args[]) throws InterruptedException{
Thread t1 = new Thread(new JoinDemo());
Thread t2 = new Thread(new JoinDemo());
t1.start();
//t1.join();//等待该线程终止,当主线程长执行到这里时,主线程会处于等待状态,等t1线程执行完后才执行
//t1.setPriority(Thread.MAX_PRIORITY); //设置线程优先级为最高
t2.start();
// for(int i = 0; i < 70; i++){
// System.out.println(Thread.currentThread().getName() + "----"+i);
// }
}
}