进程池进程执行顺序解决思路
进程池进程执行顺序Java codepullic class ThreadCooperation{public static void main(String[] args){Ex
进程池进程执行顺序
Java codepullic 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线程发现自己要睡会有空闲段,所以才去执行其他子线程,但是如果你的电脑是多核的,这种情况就不一定了,你可以用多核电脑试试(曾经碰到过,个人总结,不权威阿)