你好,我是田哥。
很多人对线程池总是一知半解,希望通过此文让你彻底的掌握线程池。不管是工作还是面试,这篇文章一定让你满载而归,学完这一篇,从此不再怕线程池。
另外,除了能掌握线程池的技术以外,更多的是学会大佬们的设计思想。
本文属于付费文,7个豆(1块钱),主要是文末有技术文档分享和技术分享群,付费有效屏蔽掉广告和非技术人员。
tips:所有的付费文章,都会收纳到我的知识星球上。
本文主要内容如下:
基础铺垫
我们想深入学习线程池,那我们肯定是需要先搞清楚线程池的来历,为什么会有线程池。
线程池,从字面意义上来说,:线程+池,也就是大家所说的池化技术。
我们回到线程, 烂大街的创建线程方式,这里就不在提了,在我的面试小抄里也有(公众号里回复77获取面试小抄)。
举个炒鸡简单的线程使用例子:
public class ThreadPoolExecutorDemo {
public static void main(String[] args) {
//打印主线程名称
System.out.println("main Thread Name: " + Thread.currentThread().getName());
//创建线程
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {
//打印子线程名称
System.out.println("sub Thread Name: " + Thread.currentThread().getName());
}
});
//启动线程
myThread.start();
}
}
启动主线程执行main方法,输出主线程名称,然后启动子线程,此时子线程任务也很简单,就是简单的打印当前线程名称。
输出结果:
main Thread Name: main
sub Thread Name: Thread-0
上面这个案例是一个单线程,我们下面来启动多线程。
public class MultipleThread {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
createThread();
}
}
private static void createThread() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread Name: " + Thread.currentThread().getName());
}
});
thread.start();
}
}
执行结果:
Thread Name: Thread-0
Thread Name: Thread-4
Thread Name: Thread-8
Thread Name: Thread-3
Thread Name: Thread-7
Thread Name: Thread-1
Thread Name: Thread-5
Thread Name: Thread-9
Thread Name: Thread-2
Thread Name: Thread-6
标签:50000,Name,Thread,void,源码,线程,main,public
From: https://blog.51cto.com/u_11702014/6444216