Java优先级线程代码示例
使用过Bit下载软件的同学应该很清楚,我们有多个下载任务同时执行,而其中的某一个或多个是非常重要的,于是给这些任务设定一个高度优先,以便任务可以获取更多的带宽尽早完成下载。Java线程的'优先级也差不多,优先级越高排程器就会给它越多的CPU执行时间,但请注意:如果有多个线程在等待一个机锁的时候,并不是优先级越高就可以越早执行。
复制代码 代码如下:
import erLayout;
import onEvent;
import onListener;
import ton;
import me;
import el;
import el;
import tField;
/**
* 线程的优先级
* 10个计数器线程分别被设置了不同的优先级,我们通过计数器的累加来观察优先级的作用
* @author 五斗米
* @blog
*/
public class TestMain extends JFrame {
private MyThread [] thread = null; // 要操作的线程
private JPanel pane = null;
private JButton startButton = null, stopButton = null; // 启动、结束按钮
public TestMain(){
super("线程的优先级");
pane = new JPanel();
thread = new MyThread[10];
for(int i = 0; i < 10; i++){ // 线程的优先级最小是1,最大是10
thread[i] = new MyThread(i + 1);
}
startButton = new JButton("执行");
ctionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < 10; i++){
thread[i]t();
}
}
});
stopButton = new JButton("结束");
ctionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < 10; i++){
thread[i]();
}
}
});
JPanel p = new JPanel();
(startButton);
(stopButton);
ontentPane()(pane);
ontentPane()(p, H);
efaultCloseOperation(_ON_CLOSE);
ize(500, 300);
ocationRelativeTo(null);
isible(true);
}
/**
* 计数器线程
*/
class MyThread extends Thread{
private JTextField text = null; // 计数器
private int i = 0; // 计数器
private int priority = 0; // 优先级
private JLabel label = null; // 优先级显示标签
private boolean b = true; // 控制线程结束的boolean变量
public MyThread(int priority){
rity = priority;
riority(priority);
JPanel p = new JPanel();
label = new JLabel("Priority=" + priority);
text = new JTextField(12);
(label);
(text);
(p); // 将自己的计数器加入主窗口面板中
}
/**
* 结束线程
*/
public void quit(){
b = false;
}
public void run(){
while(b){
ext(ring(i++));
try {
p(1); // 减小这里的毫秒数,可以让我们更容易观察到结果
} catch (InterruptedException ex) {
tStackTrace();
}
}
}
}
public static void main(String [] args){
new TestMain();
}
}
-
Java Class文件是什么
Class类是在Java语言中定义一个特定类的实现。一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类。Class类的对象用于表示当前运行的Java应用程序中的类和接口。比如:每个数组均属于一个Class类对象,所有具有相同元素类型和维数的数组共享...
-
Java测试题及答案
Java测试题及答案学习是把知识能力思维方法等转化为你的私有产权的重要手段,是公有转私的重要途径。以下是本站小编整理的Java测试题及答案,欢迎学习!试题1指出下面语句没有编译错误的是()。A.longn=999999999999;n=999999999999L;C.longn=999999999999L;D.doubl...
-
计算机二级JAVA考试强化训练题(单选)
为帮助考生们更快第掌握二级JAVA相应知识点,以下是本站小编搜索整理的一份计算机二级JAVA考试强化训练题(单选),供参考练习,预祝考生们考出自己理想的成绩!想了解更多相关信息请持续关注我们应届毕业生考试网!单选题1).下列关于Applet的安全限制的叙述中,错误的是(...
-
新手学习Java最高效的10个计划
对于新手来说学习Java如同堵天书,下面是本站小编收集的关于新手学习Java最高效的10个计划,希望可以为您的学习带来帮助!计划一:了解未来技术发展方向两耳不闻窗外事,在如今是不合适的,尤其是在瞬息万变的互联网时代,作为一个开发者技术跟不上可以去专研,思想要跟不上,...