zoukankan      html  css  js  c++  java
  • 多线程工具类与应用

    多线程工具类:

    /**
     * ThreadPoolUtil.java
     */
    package com.lbs.util;
    
    import java.util.concurrent.ArrayBlockingQueue;
    import java.util.concurrent.BlockingQueue;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.RejectedExecutionHandler;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy;
    import java.util.concurrent.TimeUnit;
    /**
     * 
     * <p>ClassName: ThreadPoolUtil</p>
     * <p>Description: TODO</p>
     */
    public class ThreadPoolUtil {
        
        
        /**
         * 设置默认初始线程池的大小
         */
        private static final int COREPOOLSIZE = 24;
        /**
         * MAXIMUMPOOLSIZE
         */
        private static final int MAXIMUMPOOLSIZE = 100;
        /**
         * QUEUESIZE
         */
        private static final int QUEUESIZE = 2000;
        /**
         * KEEPLIVETIME
         */
        private static final long KEEPLIVETIME = 5L;
        /**
         * queue
         */
        private static final BlockingQueue<Runnable> QUEUE = new ArrayBlockingQueue<Runnable>(QUEUESIZE);
        /**
         * CALLERRUNSHANDLER
         */
        private static final RejectedExecutionHandler CALLERRUNSHANDLER = new CallerRunsPolicy();
        /**
         * instance
         */
        private static ThreadPoolUtil instance = null;
        /**
         * boundedThreadPool
         */
        private ExecutorService boundedThreadPool;
        /**
         * 
         * <p>Description: TODO</p>
         */
        private ThreadPoolUtil() {
            // 创建有界大小的线程池
            this.boundedThreadPool = new ThreadPoolExecutor(COREPOOLSIZE, MAXIMUMPOOLSIZE, KEEPLIVETIME, TimeUnit.SECONDS,
                    QUEUE, CALLERRUNSHANDLER);
        }
        /**
         * 提供唯一实例
         * 
         * @return instance
         */
        public static ThreadPoolUtil getInstance() {
            if (instance == null) {
                synchronized (ThreadPoolUtil.class) {
                    if (instance == null) {
                        instance = new ThreadPoolUtil();
                    }
                }
            }
            return instance;
        }
    
        /**
         * 
         * <p>Description: TODO</p>
         * @return ExecutorService
         */
        public ExecutorService getBoundedThreadPool() {
            return this.boundedThreadPool;
        }
    }

    应用举例:

  • 相关阅读:
    [C#]画图全攻略(饼图与柱状图)(转)
    ZedGraph控件的使用
    android PopupWindow实现从底部弹出或滑出选择菜单或窗口
    那两年炼就的Android内功修养
    android添加edittext后布局就不好用
    第三方应用分享到微信朋友圈功能
    android的微信签名
    Android开源库
    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
    android 显示特殊符号
  • 原文地址:https://www.cnblogs.com/alphajuns/p/13043283.html
Copyright © 2011-2022 走看看