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