首先我们先来写一个简单的线程池代码:
![](https://img.haomeiwen.com/i14070163/4c98537e9b1c0435.png)
它的运行结果:
![](https://img.haomeiwen.com/i14070163/47ebcdb9cca8e37b.png)
此时我们在给它添加一个关闭线程池的代码
![](https://img.haomeiwen.com/i14070163/e76eac9ac84815f5.png)
它的运行结果为:
![](https://img.haomeiwen.com/i14070163/a0201270bd85fe19.png)
此时我们的main方法为主线程,我们自己定义的pool为子线程,运行时会先执行主线程然后执行我们的关闭线程池操作,当代码块再去执行子线程时就会出现错误
现在我们再来创建一个固定大小的线程池
![](https://img.haomeiwen.com/i14070163/82ce7e5f5c89bf9b.png)
它的运行结果为:
![](https://img.haomeiwen.com/i14070163/58498d4494bcf3d8.png)
此时子线程会一次性打印五个线程,谁先进谁先打印
接下来再创建一个可缓冲的线程池
![](https://img.haomeiwen.com/i14070163/2920545216cc03a0.png)
它的运行结果为
![](https://img.haomeiwen.com/i14070163/3ad63b7f94ed2aa2.png)
它的运行结果非常快(取决于你的CP)
首先我们先来写一个简单的线程池代码:
它的运行结果:
此时我们在给它添加一个关闭线程池的代码
它的运行结果为:
此时我们的main方法为主线程,我们自己定义的pool为子线程,运行时会先执行主线程然后执行我们的关闭线程池操作,当代码块再去执行子线程时就会出现错误
现在我们再来创建一个固定大小的线程池
它的运行结果为:
此时子线程会一次性打印五个线程,谁先进谁先打印
接下来再创建一个可缓冲的线程池
它的运行结果为
它的运行结果非常快(取决于你的CP)
本文标题:Spark线程池介绍
本文链接:https://www.haomeiwen.com/subject/xkrzlctx.html
网友评论