package java_learning;
class clicker implements Runnable{
int m_clicker =0;
Thread m_t;
private volatile boolean running = true;
public clicker(int p){
m_t = new Thread(this);
m_t.setPriority(p);//设置优先级
}
@Override
public void run() {
while(running){
m_clicker++;
}
}
public void start(){
m_t.start();
}
public void stop() {
running = false;
}
}
public class thread_Pri {
public static void main(String[]args){
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
clicker hi = new clicker(Thread.NORM_PRIORITY +2);
clicker lo = new clicker(Thread.NORM_PRIORITY -2);
lo.start();
hi.start();
try {
Thread.sleep(10000);//主线程休眠,让其他线程有时间运行
} catch (InterruptedException e) {
System.out.println("Main thread interrupted.");
}
lo.stop();
hi.stop();
// Wait for child threads to terminate.
try {
hi.m_t.join();
lo.m_t.join();
} catch (InterruptedException e) {
System.out.println("InterruptedException caught");
}
System.out.println("Low-priority thread: " + lo.m_clicker);
System.out.println("High-priority thread: " + hi.m_clicker);
}
}
/* 运行结果
* 优先级高的线程获得CPU时间长。
* Low-priority thread: 496805630
High-priority thread: 637874077
*/
thread_Pri
最新推荐文章于 2021-05-31 16:04:01 发布