简单说一下线程池
来源:互联网 发布:淘宝卖家寄多东西 编辑:程序博客网 时间:2024/04/25 23:28
线程池是用来方便创建多个线程的一个工具,当需要创建大量线程的时候,用Thread来创建线程已经不合适了,这时就可以使用线程池,通过线程池来控制创建线程。线程池的顶级接口是Executor,我们常用的接口是ExecutorService,该接口是Executor的子接口,创建线程池通过Executors工具类,常用的有两个线程池,newFixedThreadPool,newCachedThreadPool。如:ExectuorService executor = Executors.newFixedThreadPool(1);来创建,1表示同时只有一个线程是执行状态。如果其中执行的线程已经执行完毕,线程池中的其他等待的线程会被激活并执行。newCachedThreadPool不用指定活动线程的数量,如:ExecutorService executor = Executors.newCachedThreadPool();这个线程池不会限制执行线程的数量,如果所有的线程都是活动状态,而且又产生了新的任务,这时该线程池会创建一个新的线程来执行该任务。而newFixedThreadPool当活动线程的数量达到创建时指定的数量限制时,则必须要其中一个线程中止,才会产生新的线程来执行等待的任务。
executor.execute();这句话用来执行任务。用线程池的话,最后必须要执行shutdown()方法。因为执行该方法会停止接收新的任务,这样当所有的线程都结束后,程序就会自动退出,如果不执行该方法,则程序会一直等待接收新的任务,而不会退出程序。而判断线程池里的线程是否都结束了,可以用while(!executor.isTerminated())来判断,注意,一定要是while循环。
- 简单说一下线程池
- 简单说一下RecyclerView
- 简单说一下编译ijkplayer
- 题外话----简单说一下学习方法
- 简单说一下fragment,以及一些误区
- MFC 消息截取简单说一下
- xml(简单的说一下xml)
- 今天简单说一下cdc 的使用
- [例子向]简单说一下设计模式
- 简单说一下Nginx配置说明
- 简单了解了一下 Java线程池 ThreadPoolExecutor
- 简单记录一下sping线程池的配置和实现
- 简单说一下测试人员在开发中的作用
- 简单说一下我对这个CRM系统的设计方案
- 简单说一下MSDOS分区的几个要点
- 简单的说一下VC++多线程的实现
- 简单说一下const在各个位置的含义
- 简单说一下java中计时器,实际需要,没有详解
- javaScript中的instanceof
- AMDU抽取ASM files(ASM nomount)
- SpringMVC过滤器
- maven的pom.xml用<exclusion>解决版本问题
- 一道题跟java多态和继承相关
- 简单说一下线程池
- 获取字符串长度、字符长度、字节长度
- 异常使用原则
- 【错误】函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
- IOException parsing XML document from class path resource
- iOS中明文加密方式之base64加密
- Perl使用用户自定义信号SIGUSR1/2来控制父子进程
- Unity3d 批量修改纹理格式
- win8.1中卸载office2010中遇到的问题和相关的解决办法