别new Thread(),简单实现线程管理ThreadManager

直接开车......复制代码

直接上代码,ThreadManager类

public class ThreadManager {
    
    //获取内核数量
    private final static int NUMBER_OF_CORES = Runtime.getRuntime().availableProcessors();

    private final static ThreadPoolExecutor mDefFixThreadPool;
    private final static ThreadPoolExecutor mDefCacheThreadPool;
    private final static ExecutorService    mDefSingleThreadPool;

    static {
        mDefFixThreadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(NUMBER_OF_CORES * 2);
        mDefCacheThreadPool = (ThreadPoolExecutor) Executors.newCachedThreadPool();
        mDefSingleThreadPool = Executors.newSingleThreadExecutor();
    }

    public static ThreadPoolExecutor getDefFixThreadPool() {
        return mDefFixThreadPool;
    }

    public static ThreadPoolExecutor getDefCacheThreadPool() {
        return mDefCacheThreadPool;
    }

    public static ExecutorService getDefSingleThreadPool() {
        return mDefSingleThreadPool;
    }
}复制代码

就这么简单实现,总比每次都new Thread()好,节省系统资源。

简单使用如下:

public class ThreadTest {
    private static int count;

    public static void main(String[] args) throws java.lang.Exception {

        //CacheThreadPool简单使用
        for (int i = 0; i < 20; i++) {
            ThreadManager.getDefCacheThreadPool().execute(new Runnable() {
                @Override
                public void run() {
                    //do work
                    count++;
                    System.out.println(count);
                    System.out.println("ActiveCount:"+ThreadManager.getDefCacheThreadPool().getActiveCount());
                }
            });
        }
        //
        //FixThreadPool简单使用
        //for (int i = 0; i < 10; i++) {
        //    ThreadManager.getDefFixThreadPool().execute(new Runnable() {
        //        @Override
        //        public void run() {
        //            //do work
        //            count++;
        //            System.out.println(count);
        //            System.out.println("ActiveCount:"+ThreadManager.getDefFixThreadPool().getActiveCount());
        //        }
        //    });
        //}


        //SingleThreadPool简单使用
        // for (int i = 0; i < 10; i++) {
        //    ThreadManager.getDefSingleThreadPool().execute(new Runnable() {
        //        @Override
        //        public void run() {
        //            //do work
        //            count++;
        //            System.out.println(count);
        //        }
        //    });
        //}
    }
}复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值