线程优先级问题 貌似不起作用

量化分析 2014-11-04 10:42:13

class sync_thread
{
public static void main (String argv[])
{
Runnable r=new name_test();
Thread t1=new Thread(r,"t1");
Thread t2=new Thread(r,"t2");
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MIN_PRIORITY);
t2.start();
t1.start();

}

}



/*11.4
****
*/
class name_test implements Runnable {

public void run()
{
for(int i=0;i<10;i++)
{
/*
if(i==5 && Thread.currentThread().getName().equals("t1"))
{
Thread.yield();
}
*/
System.out.println("Name:"+Thread.currentThread().getName()+" i: "+i);

}
}
}


上面代码输出的不是等t1线程全部输出完了再执行t2线程,难道那个优先级只是设定谁先运行?


输出的结果:
Name:t2 i: 0
Name:t2 i: 1
Name:t1 i: 0
Name:t2 i: 2
Name:t2 i: 3
Name:t2 i: 4
Name:t2 i: 5
Name:t2 i: 6
Name:t1 i: 1
Name:t1 i: 2
Name:t2 i: 7
Name:t1 i: 3
Name:t1 i: 4
Name:t2 i: 8
Name:t2 i: 9
Name:t1 i: 5
Name:t1 i: 6
Name:t1 i: 7
Name:t1 i: 8
Name:t1 i: 9
...全文
254 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
想要执行完一个线程在执行另一个,那么只能同步,否则异步消息,你的优先级只是决定谁先执行而已
rumlee 2014-11-04
  • 打赏
  • 举报
回复
线程优先级意义不大,并不是说优先级高的一定先执行,而且这个依赖于操作系统。 如果希望某个线程优先执行,应该使用同步控制。
猎魔人-不纯 2014-11-04
  • 打赏
  • 举报
回复
优先级只是执行的概率比较大,中奖概率大也不一定能中奖
量化分析 2014-11-04
  • 打赏
  • 举报
回复
引用 2 楼 rumlee 的回复:
线程优先级意义不大,并不是说优先级高的一定先执行,而且这个依赖于操作系统。 如果希望某个线程优先执行,应该使用同步控制。
原来这样呀,谢谢了哦~~~
Process Lasso PRO 是一款以优化系统进程优先级来提高系统运行速度的系统进程优化软件。而应用程序在系统中的表现即为进程,当某个进程长时间占用CPU使用率过多时,就会引起系统失去响应,假死等,我们平时提到的很卡的现象。这就是为什么我们常常看到一些有经验的计算机使用者使用Windows任务管理器将某个进程强制结束的原因。最新版本新增节能模式,提高笔记本电池续航能力! Process Lasso并非另一个任务管理器。它是一个进程的优化和自动化工具。Process Lasso最受欢迎的功能之一是它的一种独特的技术,称为ProBalance(进程平衡),它会优化进程的优先级,从而提高您的PC的响应速度和稳定性。Windows的设计允许程序在不受足够的限制的情况下垄断您的CPU,从而导致系统停滞和反映滞后。ProBalance根据需求智能调节运行的程序的优先次序,从而使不良进程不会对您的PC的响应产生负面影响。这一目的并非通过提高进程优先级实现,而是通过临时降低后台进程的优先级,以避免它干扰前台进程的响应速度。 除了ProBalance,Process Lasso还有诸多功能允许用户在PC上对进程实现全面的自动化控制。您可以执行很多操作或应设置用,每次只有一个进程运行。您可以设定进程以什么优先级运行,应该分配给他们多少CPU资源。您也可以禁止某些程序运行,记录所有进程运行日志,当进程终止时或达到资源的消耗极限时自动重启,限制了运行实例数量,等等。您甚至可以指示进程,促使其进入高性能电源使用方案和/或防止PC睡眠。游戏模式可以很容易地帮助狂热的游戏玩家优化进程优先级。 自动优化系统进程优先级,提升系统运行速度: 使用Process Lasso Pro 就可以省去手动结束进程的麻烦了,Process Lasso Pro 的ProBalance(进程平衡)技术可以在某个进程的CPU使用率达到一定级别时,自动优化系统进程的优先级,防止出现个别进程CPU垄断导致整个系统失去响应的现象。从而保证系统运行速度和稳定性。 当然你也可以使用Process Lasso Pro 来达到以下目的: 1.自定义进程占用率和优先级;将不需要优化的进程添加到排除列表; 2.设置前台运行的进程始终优先,但官方貌似不推荐这么做; 3.设置进程黑名单,彻底禁止无用进程。 4.优化I/O优先级以及电源模式自动化。 Process Lasso Pro 主要特性: ProBalance:安全有效地平衡进程优先级,从而使电脑在高负荷的时候提高系统的响应速度和防止系统失速和反应滞后。我们的技术并不做额外的前台推进而是适当降低了后台进程优先级。我们多年的经验使我们的算法高度优化、独一无二。 持久的优先级和亲和力:为您的进程设置“默认”的优先级和CPU亲和力,让您可以调整它们的执行方式。 自动终止:对于您所选择的特定进程,它一旦运行,Process Lasso将自动终止它。 进程看守:当达到指定的阈值的时候,将终止、重新启动或更改CPU亲和力。 实例数量限制:将进程实例数量限制在指定的范围内。 多核优化:通过预设的CPU亲和力和ProBalance亲和力的调整,可以优化多核处理器,提高您CPU运行效率。它还避免使用逻辑核心,从而在超线程CPU下提高提高某些应用程序的性能。 I/O优先级!:Windows Vist及Windows7下可以设置进程的当前的/默认的/持续的I / O优先级 电源模式自动化:设置电源模式,当某些进程正在运行时自动更改为“高性能”,当进程退出后再换到原先的模式(较新版本功能更强大,可以更改到任何电源模式)。节约能源,或当需要时提高性能! 系统响应标:我们将以独特的算法,以惊人的准确率监测系统响应 独立的核心引擎:这个独立的后台进程可以一个普通的过程或服务形式运行。这个“核心引擎”被命名 ProcessGovernor.exe,它实际上可以强制执行进程规则和ProBalance。它根本不需要GUI(主窗口)的存在。这可以实现最小的资源利用率。 最小的资源利用:在实现最小的资源利用方面,没有任何一个程序可以与Process Lasso相比。它是用原生的C + +编写的,并不断改进以获得最大的效率。我们也提供原生的64位版本。本程序的内存使用量通常在1MB以下!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧