线程优先级问题,谢谢! 给每个线程设置优先级?void setPriority(int newPriority)Changes the priority of this thread. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要并行的话,还要求先进先出,就可能会有违初衷,也许有的处理时间长,有的短。要先进先出的话,你就顺序执行,可以参考这个: ExecutorService EXECUTOR = Executors.newSingleThreadExecutor(); for(int i =0;i<5;i++){ EXECUTOR.execute(new MyRun("thread"+i)); } EXECUTOR.shutdown(); 谢谢benma378的帮助!但设置线程优先级的方式在这个场景下不合适,因为线程的优先级是一种不严谨的做法,java并不能100%保存优先级大的线程一定会先执行。 试试设置一个锁.......线程一进来就检查队列下一个是不是它!如果不是就让他睡眠...并发想绝对控制不是那么容易...相对来说线程抢执行是随机的...加锁也只能保证程序是ONE BY ONE的执行.并不能保证顺序...所以要加一个判定...或者你说说你的具体业务功能需求..可以有更好的解决方案 定义一个静态的boolean全局变量,启动一个主线程分配顺序.先把boolean变量设置为true;启动第一个线程,第一个线程运行完成之后,设置boolean变量为flase,主线程一直循环查询直到这个boolean变量为false,然后把这个boolean变量再设置为true,再启动第二个线程......以此类推 大学计算机教的东西是不是太枯燥了? 跪求 java 将 wma 转 mp3 的程序 能否定义有返回值的main java实现文件检索转换功能 请高手帮忙 关于使用jar的问题 请问java查询SQLServer数据库的问题 求匹配JAR名字的正则表达式 到底该用哪种Java编辑器好呢? visualage 是免费的么? java 中多态的一些问题 一个java程序 求教 String 一个字符与 对齐
要先进先出的话,你就顺序执行,可以参考这个: ExecutorService EXECUTOR = Executors.newSingleThreadExecutor();
for(int i =0;i<5;i++){
EXECUTOR.execute(new MyRun("thread"+i));
}
EXECUTOR.shutdown();
但设置线程优先级的方式在这个场景下不合适,因为线程的优先级是一种不严谨的做法,java并不能100%保存优先级大的线程一定会先执行。