关于线程的一个疑问
public class ShutDown {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
for (int i = 0; i < 1000; i++) {
executorService.execute(new ShutDownTask());
}
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
}
List<Runnable> runnableList=executorService.shutdownNow();
System.out.println(runnableList.size());
}
}
class ShutDownTask implements Runnable {
@Override
public void run() {
try {
Thread.sleep(500);
System.out.println(Thread.currentThread().getName());
} catch (InterruptedException e) {
System.out.println("被中断了:"+Thread.currentThread().getName());
e.printStackTrace();
}
}
}
这里for循环的作用是把任务放到任务队列中,由线程池去执行1000个任务,主线程继续往下执行不受正在执行的1000个任务的干扰对吗?主线程和线程池中的任务是同步执行还是交替执行的?我有点不理解
源自:线程池
3-9 如何正确关闭线程池
29
收起
正在回答
2回答
同学你好,如下这段代码时循环生成30个线程并启动,是生成一个线程启动后再进行下一个。
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星