线程池

package com.jy.day15installapkmorethreaddownload;

import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**

  • Created by asus on 2019/2/11.
    */

public class ThreadManager {
private static ThreadManager mManager;
private final ThreadPoolExecutor mExecutor;

private ThreadManager(){
    mExecutor = new ThreadPoolExecutor(5,//核心线程数量,核心池的大小
            20,//线程池最大线程数
            30,//表示线程没有任务执行时最多保持多久时间会终止
            TimeUnit.SECONDS,//时间单位
            new LinkedBlockingQueue<Runnable>(),//任务队列,用来存储等待执行的任务
            Executors.defaultThreadFactory(),//线程工厂,如何去创建线程的
            new ThreadPoolExecutor.AbortPolicy());
}
public static ThreadManager getInstance(){
    if (mManager == null){
        synchronized (ThreadManager.class){
            if (mManager == null){
                mManager = new ThreadManager();
            }
        }
    }

    return mManager;
}

/**
 * 执行任务
 */
public void execute(Runnable runnable){
    if(runnable==null)return;

    mExecutor.execute(runnable);
}
/**
 * 从线程池中移除任务
 */
public void remove(Runnable runnable){
    if(runnable==null)return;

    mExecutor.remove(runnable);
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容