线程池 -实现线程复用
Posted huxiaobai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程池 -实现线程复用相关的知识,希望对你有一定的参考价值。
线程池:实现线程的复用,无须反复创建线程而消耗过多的资源,提高响应速度
- 可用集合来实现 容器->集合(ArrayList,HashSet,LinkedList
,HashMap)
原理:
当程序第一次启动时,创建多个线程,使用时采用Thread T=list.remove(),即可调用线程
- 同理也可用Thread T=linded.removeFirst();
- 使用完后记得还回线程池,采用list.add()或linked.addLast(t);
- 在JDK1.5后,不用自己创建线程池了,已经内置了
线程池创建java.util.concurrent 类 Executors(执行者) -线程池工厂类
有个静态方法
static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory)
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,在需要时使用提供的 ThreadFactory 创建新线程。
返回的是ExecutorService接口的实现类对象,可用其接受(面向接口编程)
ExecutorService接口
取线程,调用start方法,执行线程任务
>submit(Runnable task)提交一个Runnable任务进行执行
关闭/销毁线程
void shutdown()
使用步骤
- 使用线程池的工厂类Executors里提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池
以上是关于线程池 -实现线程复用的主要内容,如果未能解决你的问题,请参考以下文章