JavaSE:线程池

Posted Mr.Meeseeks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE:线程池相关的知识,希望对你有一定的参考价值。

线程池(熟悉)

 

1.  实现Callable接口

<1>  从Java5开始,新增加创建线程的第三种方式:实现java.util.concurrent.Callable接口

<2>  常用方法

V call() 计算结果并返回

 

2.  FutureTask类

<1>  java.util.concurrent.FutureTask类:用于描述可取消的异步计算。该类提供了Future接口的基本实现,包括启动和取消计算、

    查询计算是否完成以及检索计算结果的方法,也可以用于获取方法调用后的返回结果

<2>  常用方法

FutureTask(Callable callable) 根据参数指定的引用,来创建一个未来任务
V get() 获取call方法计算的结果

<3>  线程池的由来

      1.  在服务器编程模型的原理:每一个客户端连接用一个单独的线程为之服务,当与客户端的会话结束时,线程也就结束了。

                       即,每来一个客户端连接,服务器端就要创建一个新线程

      2.  如果,访问服务器的客户端很多,那么,服务器要不断地创建和销毁线程,这将严重影响服务器地性能。

 

<4>  线程池的概念和原理

      1.  概念:首先创建一些线程,它们的集合称为线程池。

              当服务器接受到一个客户请求后,就从线程池中,取出一个空闲的线程,为之服务;

            服务完后,不关闭该线程,而是将该线程还回到线程池中

      2.  原理:在线程池的编程模式下,任务是提交给整个线程池,而不是直接交给某个线程。

            线程池在拿到任务后,它就在内部,找有无空闲的线程,再把任务交给内部某个空闲的线程。

            

 

以上是关于JavaSE:线程池的主要内容,如果未能解决你的问题,请参考以下文章

线程池

[javaSE] 多线程通信(等待-唤醒机制)

JDK线程池原理

javase线程怎么存储到容器

线程小酌之理解线程池

线程小酌之理解线程池