加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java线程池实现道理与技能,看这一篇就够了

发布时间:2019-04-01 20:07:41 所属栏目:建站 来源:程序员柯南
导读:01.无穷制线程的弱点 多线程的软件计划要领确实可以最大限度地施展多核处理赏罚器的计较手段,提跨越产体系的吞吐量和机能。可是,若不加节制和打点的随意行使线程,对体系的机能反而会发生倒霉的影响。 一种最为简朴的线程建设和接纳的要领相同如下: newThre

3.测试Main要领

  1. public static void main(String[] args) throws InterruptedException { 
  2.        for (int i = 0; i < 1000; i++) { 
  3.            ThreadPool.getInstance().start(new Runnable() { 
  4.                @Override 
  5.                public void run() { 
  6.                    try { 
  7.                        //休眠100ms 
  8.                        Thread.sleep(100); 
  9.                    } catch (InterruptedException e) { 
  10.                        e.printStackTrace(); 
  11.                    } 
  12.                } 
  13.            }); 
  14.        } 
  15.    } 

03ThreadPoolExecutor

为了可以或许更好地节制多线程,JDK提供了一套Executor框架,辅佐开拓职员有用地举办线程节制。Executor框架无论是newFixedThreadPool()要领、newSingleThreadExecutor()要领照旧newCachedThreadPool()要领,其内部实现均行使了 ThreadPoolExecutor:

  1. public static ExecutorService newCachedThreadPool() { 
  2.         return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 
  3.                                       60L, TimeUnit.SECONDS, 
  4.                                       new SynchronousQueue<Runnable>()); 
  5.     } 
  6.      
  7.     public static ExecutorService newFixedThreadPool(int nThreads) { 
  8.         return new ThreadPoolExecutor(nThreads, nThreads, 
  9.                                       0L, TimeUnit.MILLISECONDS, 
  10.                                       new LinkedBlockingQueue<Runnable>()); 
  11.     } 
  12.      
  13.     public static ExecutorService newSingleThreadExecutor() { 
  14.         return new FinalizableDelegatedExecutorService 
  15.             (new ThreadPoolExecutor(1, 1, 
  16.                                     0L, TimeUnit.MILLISECONDS, 
  17.                                     new LinkedBlockingQueue<Runnable>())); 
  18.     } 

由以上线程池的实当代码可以知道,它们只是对 ThreadPoolExecutor 类的封装。为何 ThreadPoolExecutor 类有云云强盛的成果?来看一下 ThreadPoolExecutor 最重要的结构要领。

3.1 结构要领

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读