Java线程:线程的调度-优先级
与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。
线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。
在一个线程中开启另外一个新线程,则新开线程称为该线程的子线程,子线程初始优先级与父线程相同。
Java代码
1./**
2.* Java线程:线程的调度-优先级
3.*
4.* @author leizhimin 2009-11-4 9:02:40
5.*/
6.public class Test {
7. public static void main(String[] args) {
8. Thread t1 = new MyThread1();
9. Thread t2 = new Thread(new MyRunnable());
10. t1.setPriority(10);
11. t2.setPriority(1);
12.
13. t2.start();
14. t1.start();
15. }
16.}
17.
18.class MyThread1 extends Thread {
19. public void run() {
20. for (int i = 0; i < 10; i++) {
21. System.out.println("线程1第" + i + "次执行!");
22. try {
23. Thread.sleep(100);
24. } catch (InterruptedException e) {
25. e.printStackTrace();
26. }
27. }
28. }
29.}
30.
31.class MyRunnable implements Runnable {
32. public void run() {
33. for (int i = 0; i < 10; i++) {
34. System.out.println("线程2第" + i + "次执行!");
35. try {
36. Thread.sleep(100);
37. } catch (InterruptedException e) {
38. e.printStackTrace();
39. }
40. }
41. }
42.}
/**
* Java线程:线程的调度-优先级
*
* @author leizhimin 2009-11-4 9:02:40
*/
public class Test {
public static void main(String[] args) {
Thread t1 = new MyThread1();
Thread t2 = new Thread(new MyRunnable());
t1.setPriority(10);
t2.setPriority(1);
t2.start();
t1.start();
}
}
class MyThread1 extends Thread {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("线程1第" + i + "次执行!");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class MyRunnable implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("线程2第" + i + "次执行!");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Java代码
1.线程1第0次执行!
2.线程2第0次执行!
3.线程2第1次执行!
4.线程1第1次执行!
5.线程2第2次执行!
6.线程1第2次执行!
7.线程1第3次执行!
8.线程2第3次执行!
9.线程2第4次执行!
10.线程1第4次执行!
11.线程1第5次执行!
12.线程2第5次执行!
13.线程1第6次执行!
14.线程2第6次执行!
15.线程1第7次执行!
16.线程2第7次执行!
17.线程1第8次执行!
18.线程2第8次执行!
19.线程1第9次执行!
20.线程2第9次执行!
21.
22.Process finished with exit code 0
分享到:
相关推荐
多线程优先级是操作系统调度线程的一种策略,用于决定哪些线程应该先获得CPU资源。线程的优先级越高,它被调度执行的概率越大。在大多数操作系统中,线程优先级分为多个等级,例如在Windows中有实时、高、正常、低等...
本示例将深入探讨多线程优先级及其对程序执行的影响。 标题中的“多线程优先级的示例演示”是一个实践教程,旨在帮助开发者理解线程优先级的工作原理以及如何在实际代码中应用。通过模拟赛马比赛的场景,我们可以...
VC 用进度条表示多线程优先级执行问题,程序将演示各个线程执行的优先级,当然这是在程序中设置好的,程序将按照设定运行各个线程,当然,优先级不一样,将按以下顺序启动线程:关键时间最先执行,最高其次,然后...
线程优先级是多线程编程中的一个重要概念,特别是在Windows操作系统中,VC++(Visual C++)作为微软的开发环境,提供了对线程管理的丰富支持。赛马演示是一种直观的方式来展示不同线程优先级如何影响程序执行顺序,...
在编程领域,线程是操作系统分配CPU执行时间...总之,VC++中的线程优先级管理是多线程编程的关键技术之一。通过“赛马”示例程序,开发者能直观理解线程优先级对程序执行顺序的影响,从而更好地设计和优化多线程应用。
在编程领域,多线程是实现并发执行任务的重要机制,特别是在Windows系统中,VC++6.0作为经典的C++开发环境,提供了丰富的API来支持多线程编程。本项目"**xiancheng.rar_vc 多线程_线程 优先级_设置 线程 优先级**...
总之,理解并适当使用线程优先级是提高多线程程序效率的关键之一。在VC2008这样的开发环境中,我们可以借助Windows API函数轻松地调整线程的优先级,但这需要谨慎对待,以免引发其他问题。在设计和实现多线程应用时...
在编程领域,线程是操作系统分配CPU时间的基本单位,它允许程序并发执行多个任务。线程优先级则是操作系统...通常,更好的做法是采用多线程协作和同步机制,如信号量、互斥量或事件对象,来保证程序的正确性和高效性。
默认情况下,新创建的线程优先级与父线程相同,可以通过setPriority()方法设置线程的优先级。然而,需要注意的是,线程的优先级并不保证绝对的执行顺序,只是对调度的一个建议,实际执行顺序还取决于操作系统的调度...
线程优先级的设定能够优化程序的性能,特别是在多线程环境中,确保关键任务或高优先级任务能够得到及时处理。在易语言中,我们可以通过调用特定的系统支持库来实现这一功能。 这个压缩包包含三个文件: 1. `const....
Java中的线程优先级是Java多线程编程中一个重要的概念,它用于控制不同线程的执行顺序。线程优先级允许我们为某些任务分配更高的执行权重,理论上高优先级的线程会比低优先级的线程更早获得CPU执行时间。然而,需要...
总的来说,理解和掌握线程优先级的概念,能帮助我们更好地设计和优化多线程程序,提高系统的整体性能。在实践中,应谨慎使用线程优先级,并结合其他同步和通信机制,如互斥量、信号量等,以实现高效且稳定的并发执行...
在实际开发中,合理地使用线程优先级可以优化多线程程序的性能,但应谨慎使用,避免导致不可预期的行为。通常,开发者应该优先考虑使用线程池、信号量等并发控制机制来保证线程的正确性和公平性,而不是单纯依赖线程...
1.多线程的执行顺序无法保证,与操作系统的调度策略和线程优先级等因素有关。 2.多线程的切换可能发生在任何时刻、任何地点。 3.多线程对代码的敏感度高,因此对代码的细微修改都可能产生意想不到的效果。 先由一...
理解并熟练掌握Thread类的构造器和方法,以及线程优先级的概念,对于编写高效、稳定的多线程程序至关重要。在实际开发中,应避免使用已过时的方法,合理利用线程调度机制,确保线程安全,提高程序性能。同时,对守护...
JAVA多线程,并设置优先级案例,一段完整的程序,加上自己的东西就可以跑起来
线程优先级是Java多线程中的一个重要概念,它允许我们为线程指定一个优先级,以期望调度器能够根据优先级来决定哪个线程应该优先执行。然而,需要注意的是,Java的线程优先级并不保证绝对的执行顺序,而只是提供了一...
本文将深入探讨Java多线程中的关键知识点,包括创建线程、主线程、线程优先级、线程组、线程同步以及线程间的通信。 1. **创建线程** 在Java中,可以通过两种方式创建线程:继承`Thread`类或实现`Runnable`接口。...
Java线程优先级是Java多线程编程中的一个重要概念,它用于控制线程的执行顺序。在Java中,线程的优先级可以帮助我们调整不同任务的执行优先级,以优化程序性能。本教程将深入讲解Java线程优先级的设置,并提供源代码...
在多线程程序中,线程优先级决定了哪个线程会被优先调度执行。优先级较高的线程更有可能被操作系统选中运行,而低优先级的线程则可能需要等待。 在Windows操作系统中,线程优先级通常有以下几种级别:IDLE_PRIORITY...