导航:首页 > 编程语言 > 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设置线程优先级相关的资料

热点内容
程序员放弃后会怎样 浏览:187
河北模具编程 浏览:190
adb查找命令 浏览:324
安卓手机视频文件夹怎么打开 浏览:314
平板加密手机后怎么关闭 浏览:572
流媒体服务器应该注意什么 浏览:539
d8命令编译 浏览:969
压缩包解压需要多少空间 浏览:152
如何查找app属性 浏览:392
android人脸识别技术 浏览:326
pc104编程 浏览:338
二维码反编译破解推广 浏览:686
修改服务器的mac地址 浏览:531
好玩的编程软件 浏览:902
编程语言创始人有钱吗 浏览:809
短视频app怎么获客 浏览:18
查看云服务器的应用 浏览:441
javadump工具 浏览:569
程序员16g 浏览:449
程序员没有办法成为top怎么办 浏览:223