读书人

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

发布时间: 2012-01-14 20:02:35 作者: rapoo

进程池进程执行顺序

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线程发现自己要睡会有空闲段,所以才去执行其他子线程,但是如果你的电脑是多核的,这种情况就不一定了,你可以用多核电脑试试(曾经碰到过,个人总结,不权威阿)

读书人网 >Java相关

热点推荐