Java中setPriority()用于设置线程优先级,取值范围1-10,默认为5,通过Thread类调用,如thread.setPriority(8),但实际调度受操作系统影响,不保证执行顺序,仅作提示。
Java 中的 setPriority() 方法用于设置线程的优先级,它定义在 Thread 类中。通过调整线程优先级,可以影响线程调度器对线程执行顺序的决策,但不能保证绝对的执行顺序。
Java 线程优先级是一个整数,取值范围从 1 到 10:
创建线程时,如果没有显式设置优先级,它会继承创建它的父线程的优先级。
调用线程对象的 setPriority(int priority) 方法即可设置优先级。示例代码如下:
Thread thread = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + ": 执行任务 " + i);
}
});
thread.setPriority(8); // 设置较高优先级
thread.start();
也可以在主线程中修改优先级:
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
尽管设置了优先级,但线程调度依赖于底层操作系统,因此:
可通过 getPriority() 方法获取线程当前优先级:
System.out.println("主线程优先级:" + Thread.currentThread().getPriority())
;
System.out.println("新线程优先级:" + thread.getPriority());
基本上就这些。setPriority() 是一个简单的提示机制,合理使用有助于优化资源调度,但不应作为并发控制的核心手段。