码迷,mamicode.com
首页 > 编程语言 > 详细

线程池 -实现线程复用

时间:2019-09-16 19:49:51      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:使用   cut   提交   提高   rem   lis   void   pool   面向接口   

线程池:实现线程的复用,无须反复创建线程而消耗过多的资源,提高响应速度

  • 可用集合来实现 容器->集合(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()

使用步骤

  1. 使用线程池的工厂类Executors里提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池

线程池 -实现线程复用

标签:使用   cut   提交   提高   rem   lis   void   pool   面向接口   

原文地址:https://www.cnblogs.com/huxiaobai/p/11528931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!