首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

进程池进程执行顺序解决思路

2012-01-14 
进程池进程执行顺序Java codepullic class ThreadCooperation{public static void main(String[] args){Ex

进程池进程执行顺序

Java code
pullic class ThreadCooperation{   public static void main(String[] args)   {      ExecutorService executor = Executors.newFixedThreadPool(2);      //DepositTask、WithdrawTask是实现了Runnable接口的类,都定义了run()方法。      executor.execute(new DepositTask());      executor.execute(new WithdrawTask());         System.out.println("...(略)");   }}

这是main函数的一部分,在运行程序的时候,总是main函数的println方法先打印,再是进程池的两个进程打印出来。不解!

[解决办法]
线程执行顺序是CPU决定的!要其余线程先执行的话,可以要main方法所在线程sleep()久点!
[解决办法]
线程执行顺序是CPU决定的,你可以让main所在线程sleep久点!
[解决办法]
在你的电脑是单核的情况下,main线程确实优先执行,即使你在主线程里加了Thread.sleep(xxx);它实际上也是最先执行main线程的,只不过是main线程发现自己要睡会有空闲段,所以才去执行其他子线程,但是如果你的电脑是多核的,这种情况就不一定了,你可以用多核电脑试试(曾经碰到过,个人总结,不权威阿)

热点排行