zoukankan      html  css  js  c++  java
  • J.U.C关于Execute实现

    JAVASE5的Execute将为你管理Thread对象,是启动任务的优选方案
    
    /**
    *
    newCachedThreadPool
    在程序的执行过程中通常会创建于所需任务相同数量的线程即可以达到Integer.Max_values量 固使用不当容易引起内存溢出
    */
    ExecutorService executorService = Executors.newCachedThreadPool();
    public static ExecutorService newCachedThreadPool() {
    return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>()); }
    ==========================
    newFixedThreadPool==============================================
    /**
    *创建指定线程数的线程;
    此方法阻塞队列的容量没有限制;允许请求的队列长度为Integer.MAX_VALUE,可能会堆积大量请求,造成OOM
    */
    ExecutorService executorService = Executors.newFixedThreadPool(2);// 有限线程数队列
    public static ExecutorService newFixedThreadPool(int nThreads) 
    { 
        return new ThreadPoolExecutor(nThreads, nThreads, 19 20 0L, TimeUnit.MILLISECONDS,  new LinkedBlockingQueue<Runnable>()); 
    }

    public
    LinkedBlockingQueue(){
    this(Integer.MAX_VALUE);//创建指定容量的链表队列
    }
    
    
    ===============================newSingleThreadExecutor==============================

    /**

    *线程数量为1的FixedThreadPool 每个任务将进入队列直到上一个任务处理完成,使用同一个线程处理<br>

    LinkedBlockingQueue队列实现也是队列长度为Integer.MAX_VALUE所以也容易引起堆积大量请求,造成OOM

    */

      ExecutorService executorService = Executors.newSingleThreadExecutor();


    public static ExecutorService newSingleThreadExecutor() {

    return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()));
    }
  • 相关阅读:
    配置Echarts大全
    MAthJax入门教程(五分钟上手)
    JQ常用方法(哈哈)
    神奇的数组去重。
    echarts零基础快速入门
    css3 媒体查询的学习。
    css样式 body的font-size 为什么用625%
    移动端横向滚动条。
    剧中自适应问题
    iPhone 横屏时默认会放大文字的问题
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9224268.html
Copyright © 2011-2022 走看看