养胃的食物,人生若如初相见,奥迪rs3-上新产品,产品经理评最新国内新产品

admin 2019-05-16 阅读:316

难度

初级

学习时刻

10分钟

合适人群

零根底

开发言语

Java

开发环境

  • JDK v11
  • IntelliJIDEA v2018.3

友谊提示

  • 本教育归于系列教育,内容具有连贯性,本章运用到的内容之前教育中都有具体解说。
  • 本章内容针对零根底或根底较差的同学比较友爱,或许关于有根底的同学来说很简略,期望咱们能够依据自己的实际情况挑选继续看完或等候看下一篇文章。谢谢咱们的体谅!

1.温故知新

前面在《“全栈2019”16篇Java原子操作学习资料及总结》一章中介绍了Java原子操作系列悉数文章

本章介绍什么是线程池。

2.为什么需求线程池?

假如说,创立一个线程需求花1分钟且需求占用1G的内存,你会爱惜运用线程吗?

我会,由于创立线程的价值太大了。

那假如频频运用到线程,你会怎么做?

我会多创立几个线程,然后把它存起来,循环运用它们。

确实,线程的创立到毁掉是一个很绵长的进程,许多线程被创立出来只履行一次使命便不再被运用,形成资源糟蹋。

假如咱们能事前创立一批线程,循环运用这批线程去履行使命,相较之前的每次履行使命都从头创立一个线程而言,履行功率和空间占用等方面会大大得到改善。

咱们需求了解的是,不是线程越多越好,由于CPU资源有限,内存也有限,过多的创立线程程序只会运转越来越慢,不会越来越快,所以应该合理创立线程和运用线程。

3.什么是线程池?

线程池是一种多线程处理方法,处理进程中将使命增加到行列,然后在创立线程后主动发动这些使命。

将上面这段话欠好了解,咱们先来了解一个最简略的线程履行使命的进程。

首要,要知道什么是使命?

使命便是Runnable,当然了,后边章节介绍到的Callable也是使命。它们的差异在于履行完使命今后,有返回值的是Callable,无返回值的是Runnable。

本章就以Runnable为例,举一个最简略的提交使命到线程的比如。

这儿咱们先创立一个使命:

然后,提交使命给线程:

最终,发动线程:

比如书写结束。

运转程序,履行成果:

从运转成果来看,契合预期。

线程履行使命原理图:

下面,咱们将比如改写为线程池(相关常识后边章节会渐渐介绍)。

首要,创立需求提交给线程池的使命:

然后,创立线程池:

接着,提交使命:

最终,封闭线程池:

比如书写结束。

运转程序,履行成果:

从运转成果来看,契合预期。

线程池履行使命原理图:

线程池具体是这么作业的,后边章节会具体介绍。

最终,期望咱们能够把这个比如照着写一遍,然后再自己默写一遍,便利今后碰到相似的面试题能够轻松应对。

祝咱们编码愉快!

GitHub

本章程序GitHub地址:https://github.com/gorhaf/Java2019/tree/master/Thread/ThreadPool

总结

  • 线程池是一种多线程处理方法,处理进程中将使命增加到行列,然后在创立线程后主动发动这些使命。

至此,Java中线程池相关内容解说先告一段落,更多内容请继续重视。

答疑

假如咱们有问题或想了解更多前沿技术,请在下方留言或谈论,我会为咱们回答。

上一章

“全栈2019”16篇Java原子操作学习资料及总结

下一章

“全栈2019”Java线程进阶第二章:创立线程池的三种方法

学习小组

参加同步学习小组,一同沟通与前进。

方法一:欢迎参加“全栈工程师”编程圈子,与到圈友一同沟通评论。

(此处已增加圈子卡片,请到今天头条客户端检查)

方法二:重视头条号Gorhaf,私信“Java学习小组”。

方法三:重视大众号Gorhaf,回复“Java学习小组”。

全栈工程师学习方案

重视咱们,参加“全栈工程师学习方案”。

版权声明

原创不易,未经答应不得转载!