我写了一段代码,开了3个线程,并分别设置了优先级,但是出来的结果每次都不一样
发布网友
发布时间:2022-10-07 19:00
我来回答
共2个回答
热心网友
时间:2023-10-29 10:23
优先级越高排程器就会给它越多的CPU执行时间,但请注意:如果有多个线程在等待一个机锁的时候,并不是优先级越高就可以越早执行。
优先级这个东西,也是和操作系统相关联的,你虽然在程序里面设置了优先级,但是操作系统也有可能把它们的优先级当成是一样的,因为操作系统的优先级一般就三种,不会像程序里面这样会设置0-10级。
与线程相关的程序几乎都和操作系统有关系,要写出完全正确的线程程序,必须要了解操作系统的知识。线程的输出结果确实有很多不确定性。
线程的程序结果..跟操作系统的调度方法和电脑配置都有很大关系的..
所以运行几次结果不一样也不要慌张..反而这才是正常现象..
热心网友
时间:2023-10-29 10:23
优先级并不代表不进行,你这得明白
真想知道这个优先级的,你输出3句话也太短了,看不出
你可以这样
for(int i=0;i<10000;i++){
System.out.println("strC1: "+str_C);
}
感受一下