Java 优先级会影响同一台计算机上的其他程序吗?
我有这样一个代码:Java 优先级会影响同一台计算机上的其他程序吗?,java,concurrency,Java,Concurrency,我有这样一个代码: Thread thread = new Thread(new Runnable() { @Override public void run() { //extremely time-consuming actions } }); thread.setPriority(Thread.MAX_PRIORITY); thread.start(); 线程将执行一些耗时的操作,并且
Thread thread = new Thread(new Runnable()
{
@Override
public void run()
{
//extremely time-consuming actions
}
});
thread.setPriority(Thread.MAX_PRIORITY);
thread.start();
线程将执行一些耗时的操作,并且具有高优先级
现在我想知道,在我的系统的所有其他程序中,这个线程的优先级是更高的呢,还是与同一程序的线程相比,它的优先级更高呢?只有同一程序的线程-在虚拟机本身中。但这也不是一个保证,只是对虚拟机的一个提示。很难概括,因为它取决于底层平台。Java线程优先级映射到OS线程优先级,通常没有一对一的映射。一些平台提供从1到10的优先级。但是Java只提供了3个级别
因此,操作系统有责任平等公平地对待应用程序中所有具有相同优先级的线程及其自身线程。优先级在进程中的线程内,而不是跨进程。JVM甚至可以,因此您甚至不能保证进程本身的优先级 JVM为Java线程定义了十个逻辑优先级, 包括: java.lang.Thread.MIN_优先级=1 java.lang.Thread.NORM_优先级=5 java.lang.Thread.MAX_优先级=10 这些值[1..10]被传递到Thread.setPriority(int)中进行赋值 Java线程的优先级。Java线程的默认优先级为 标准优先。(不显式调用setPriority的Java线程) JVM可以在任何情况下自由地实现优先级 它选择的方式,包括忽略值