导航:首页 > 编程语言 > java设置线程优先级

java设置线程优先级

发布时间:2022-08-31 15:15:00

❶ 求教java 线程优先级和执行顺序问题!!

优先级高的线程是获得较多的执行机会,优先级低的线程是获得较少的执行机会。你先启动的优先级低的几个线程,最后才启动的优先级高的。优先级低的线程是可以先执行的,只不过时间短罢了。如果你这样写,是测试不出优先级高低的,应该在run() 中执行循环输出(比如1-100)才能看出执行时间长短,否则一下就执行完了。

虽然java 提供了10个优先级,但这些优先级需要操作系统的支持。不同操作系统上优先级并不相同,也不能很好地和java的10个优先级对应。例如:window2000就只提供了7个优先级。所以应该使用MAX_PRIORITY,MIN_PRIORITY,NORM_PRIORITY来设置优先级 。

❷ java 线程 优先级设置 setPriority() 的参数

运算符优先级,你需要加一个括号试试,
System.out.println("Thread.NORM_PRIORITY==10 "+(Thread.NORM_PRIORITY==5));

❸ java线程执行顺序问题

线程执行貌似没有顺序,根据CPU的资源使用情况而定,不过你可以:

用线程之间通信来解决上述的业务,如使用共享式变量的方式控制其业务顺序!!

❹ Java线程优先级问题,为什么我设置了t1的优先级为8,运行结果却是t2优先

这个优先级设置只能提高该线程的优先概率,不能让一个线程执行完才执行下一个。

❺ 在java中,返回线程的优先级的方法是什么

创建一个继承Thread的简单类:
public class SetPriorityDemo extends Thread {

@Override
public void run() {

for(int i=0;i<100;i++)
{
System.out.println(getName()+"--"+i);
}
}
}
2
在主线程中创建两个线程,并对其进行优先级的设置:
ublic class SetPriorityMain {

public static void main(String[] args) {

SetPriorityDemo spd = new SetPriorityDemo();
SetPriorityDemo spd2 = new SetPriorityDemo();
spd.getPriority();// 5 ,
spd.setName("hahah");
spd2.setName("hehhe");
spd.setPriority(10);//10
spd2.setPriority(1);//1
spd.start();
spd2.start();
}

}
3
这句语句在控制台中得到的结果是:5; 这就说明了线程默认的优先级是5;
4
spd.setPriority(10);//10
spd2.setPriority(1);//1
10是最大的优先级,最优先,而1是最小的优先级,所以最慢!
5
控制台运行结果如下:
hahah--0
hehhe--0
hahah--1
hehhe--1
hahah--2
hehhe--2
hahah--3
hehhe--3
hahah--4
hahah--5
hehhe--4
hahah--6
hahah--7
hahah--8
hahah--9
hahah--10
hahah--11
hahah--12
hahah--13
hehhe--5
hehhe--6
hahah--14
hahah--15

.

❻ java线程优先级有什么意义




》》。。。而sleep之后就会随机排序了,优先级此时就不起作用了,有没有解决的办法?
其中一个办法是让每一个线程记得必须比它先完成的另一个线程,
然后在必要时强制它放弃执行一直到那另一个线程执行完为止。 比如:

class CustomThread extends Thread {
private Thread 先完;

CustomThread(String name, Thread 先完) {
super(name);
this.先完 = 先完;
}

public void run() {
System.out.println(this.getName());
try {
sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}

if (先完 != null)
try {
先完.join();
} catch (InterruptedException e) {}

System.out.println("NAME: " + this.getName() + " Bye");
}
}

class MultiThread {
public static void main(String args[]) throws InterruptedException {
CustomThread thread1 = new CustomThread("first",null);
CustomThread thread2 = new CustomThread("second",thread1);
CustomThread thread3 = new CustomThread("third",thread2);
CustomThread thread4 = new CustomThread("fourth",thread3);
thread1.setPriority(Thread.MAX_PRIORITY);
thread2.setPriority(Thread.MAX_PRIORITY-1);
thread3.setPriority(Thread.MAX_PRIORITY-2);
thread4.setPriority(Thread.MAX_PRIORITY-3);
thread1.start();
thread2.start();
thread3.start();
thread4.start();
}
}

4 等 3、3 等 2、。。。 串联成单一线程了,所以如果情况允许的话,
把所有必须顺序执行的任务集合在单一线程里(比如留在 main 里)是另一个办法。

》》。。。优先级到底有什么用处?
轻易地让程序即使在非常忙碌的时候也能迅速处理使用者的输入(该输入也许是调整某项操作的优先级:)、编写游戏时更方便地实现战场上级别较高的一方优先攻击、等等。


❼ JAVA多线程优先级运行顺序的问题

这个。。你不必纠结。。
深入说的话,其实。。很深。。
首先说 线程优先级,并不能保证优先级高的先运行,也不保证优先级高的更多的分配CPU时间,只是对系统的建议而已,到底运行哪个,是操作系统决定的,都不是java说了算的。
另外java只能保证在线程内部看起来是顺序执行你的代码的,并不能保证从其他线程看来这个是按照你编码顺序执行的。。

阅读全文

与java设置线程优先级相关的资料

热点内容
spwm软件算法 浏览:184
70多岁单身程序员 浏览:221
高考考前解压拓展训练 浏览:217
用纸做解压玩具不用浇水 浏览:584
谷轮压缩机序列号 浏览:736
牛顿插值法编程 浏览:366
php多用户留言系统 浏览:729
安卓和苹果如何切换流量 浏览:703
怎么知道dns服务器是多少 浏览:976
5995用什么简便算法脱式计算 浏览:918
电脑上如何上小米云服务器地址 浏览:921
手机资料解压密码 浏览:444
44引脚贴片单片机有哪些 浏览:692
阿里程序员脑图 浏览:189
广东编程猫学习班 浏览:708
上海数控编程培训学校 浏览:313
怎么下载我的解压神器 浏览:634
lib文件无用代码会编译吗 浏览:28
我的世界嗨皮咳嗽服务器怎么下 浏览:1003
mvn命令顺序 浏览:978