代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
Java线程优先级示例
作者:
沉淀岁月
/ 发布于
2013/9/10
/
448
使用过Bit下载软件的同学应该很清楚,我们有多个下载任务同时执行,而其中的某一个或多个是非常重要的,于是给这些任务设定一个高度优先,以便任务可以获取更多的带宽尽早完成下载。Java线程的优先级也差不多,优先级越高排程器就会给它越多的CPU执行时间,但请注意:如果有多个线程在等待一个机锁的时候,并不是优先级越高就可以越早执行。
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** * 线程的优先级 * 10个计数器线程分别被设置了不同的优先级,我们通过计数器的累加来观察优先级的作用 * @author 五斗米 * @blog http://blog.csdn.net/mq612 */ 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("执行"); startButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { for(int i = 0; i < 10; i++){ thread[i].start(); } } }); stopButton = new JButton("结束"); stopButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { for(int i = 0; i < 10; i++){ thread[i].quit(); } } }); JPanel p = new JPanel(); p.add(startButton); p.add(stopButton); this.getContentPane().add(pane); this.getContentPane().add(p, BorderLayout.NORTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500, 300); this.setLocationRelativeTo(null); this.setVisible(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){ this.priority = priority; this.setPriority(priority); JPanel p = new JPanel(); label = new JLabel("Priority=" + priority); text = new JTextField(12); p.add(label); p.add(text); pane.add(p); // 将自己的计数器加入主窗口面板中 } /** * 结束线程 */ public void quit(){ b = false; } public void run(){ while(b){ this.text.setText(Integer.toString(i++)); try { this.sleep(1); // 减小这里的毫秒数,可以让我们更容易观察到结果 } catch (InterruptedException ex) { ex.printStackTrace(); } } } } public static void main(String [] args){ new TestMain(); } }
试试其它关键字
线程优先级
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
沉淀岁月
贡献的其它代码
(
39
)
.
CSS置顶页脚
.
CSS跨浏览器透明度
.
timer定时器的用法演示
.
PHP实现网站保存快捷桌面方式
.
定位函数所在模块
.
提示信息的自动隐藏
.
提交表单后禁用提交按钮
.
文本框输入值文字消失
.
批量剪切图片
.
批量生成ETL Automation APP下Perl脚本执行目录
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3