优先级高的线程会先执行, 而优先级低的线程会后执行, 如果希望人为地控制线程, 使正在执行的线程暂停, 将CPU让给别的线程, 这时可以使用如下方法:
public static native void sleep(long millis) throws InterruptedException;
案例
public static void main(String[] args) {
// 创建任务对象,将任务对象传入线程对象中,启动
Runnable runnable = new SleppTask();
Thread thread = new Thread(runnable, "线程一");
thread.start();
// 主线程执行的代码
for (int i = 0; i < 2; i++) {
System.out.println(Thread.currentThread().getName() + " 正在输出 :" + i);
try {
thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class SleppTask implements Runnable {
@Override
public void run() {
for (int i = 0; i <2; i++) {
System.out.println(Thread.currentThread().getName() + " 正在输出 :" + i);
try {
Thread.sleep(500); // 休眠0.5秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运动结果
main 正在输出 :0
线程一 正在输出 :0
main 正在输出 :1
线程一 正在输出 :1
**注意 **
sleep() 是静态方法, 只能控制当前正在运行的线程休眠, 而不能控制其他线程休眠.