请问:
import java.util.concurrent.*;public static void main(String[]args)
{
ExecutorService exec = Executors.newCachedThreadPool();
for(int i=0;i<5;i++)
{
exec.execute(new LiftOff());//LiftOff类实现了Runnable接口
exec.shutdown();
}
}
问:Executors.newCachedThreadPool();exec.execute(new LiftOff());exec.shutdown();
这3个方法不懂 看了jdk文档 也没怎么看明白
请哪位高手 帮帮忙详细解释一下 结合这个程序
谢谢
import java.util.concurrent.*;public static void main(String[]args)
{
ExecutorService exec = Executors.newCachedThreadPool();
for(int i=0;i<5;i++)
{
exec.execute(new LiftOff());//LiftOff类实现了Runnable接口
exec.shutdown();
}
}
问:Executors.newCachedThreadPool();exec.execute(new LiftOff());exec.shutdown();
这3个方法不懂 看了jdk文档 也没怎么看明白
请哪位高手 帮帮忙详细解释一下 结合这个程序
谢谢
for(int i=0;i <5;i++)
{
exec.execute(new LiftOff());//LiftOff类实现了Runnable接口 //产生新线程
exec.shutdown(); //关闭线程池
}
{
ExecutorService exec = Executors.newCachedThreadPool();
for(int i=0;i <5;i++)
{
System.out.println(exec.isShutdown());
exec.execute(new LiftOff());//LiftOff类实现了Runnable接口 }
exec.shutdown();
}
这样写似乎会更合理一点
正如楼上所说, 如果在for循环中把线程池给关闭了, 然后又向其中创建新的线程, 没有意义.