Java 虚拟机在调度各线程运行时,并非每个线程的运行机会相同,调度机制根据各线程的优先级调度各线程。因而,优先级高的线程获得的运行时间就多,优先级低的线程获得的运行时间就少。本例演示了不同优先级的线程在完成同一个任务时的不同进度,来验证上面的结论。高优先级的线程获得运行的机会多。同时开始的两个不同优先级的线程,在做同一个任务时的不同进度如图所示:
实现思路:Java 的线程类java.lang.Thread 提供了三个级别的线程优先级,即Thread.MIN_PRIORITY、Thread.NORM_PRIORITY 和Thread.MAX_PRIORITY 。并且提供了设置线程优先级的方法setPriority(int priority)。本例中,当程序运行时,两个优先级分别为Thread.MIN_PRIORITY 和Thread.MAX_PRIORITY的线程,分别使各自的进度条值增加。为此,编写一个继承Thread 类的ProgressThread 来完成计算并刷新显示进度条值的功能。程序代码:1.新建一个Project,取名为JThreadRace。2. 新建一个Application, 取名为JThreadRace ; 主窗口取名为MainFrame, 标题为JThreadRace。3.在MainFrame 类的设计窗口中添加两个JProgressBar 组件、一个JButton 组件和一个JLabel组件;并在类中添加新的属性ProgressThread pThread1 和ProgressThread pThrea