Java線程池工具類


Java線程池工具類

  • java代碼
package cn.pconline.common.utils;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @Description 線程池工具類
 * @Author jie.zhao
 * @Date 2019/8/21 9:26
 */
public class ThreadPoolUtil {

    /**
     * 核心線程數,會一直存活,即使沒有任務,線程池也會維護線程的最少數量
     */
    private static final int SIZE_CORE_POOL = 5;
    /**
     * 線程池維護線程的最大數量
     */
    private static final int SIZE_MAX_POOL = 10;
    /**
     * 線程池維護線程所允許的空閑時間
     */
    private static final long ALIVE_TIME = 2000;
    /**
     * 線程緩沖隊列
     */
    private static BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(100);
    private static ThreadPoolExecutor pool = new ThreadPoolExecutor(SIZE_CORE_POOL, SIZE_MAX_POOL, ALIVE_TIME, TimeUnit.MILLISECONDS, bqueue, new ThreadPoolExecutor.CallerRunsPolicy());

    static {
        pool.prestartAllCoreThreads();
    }

    public static ThreadPoolExecutor getPool() {
        return pool;
    }
}
  • 使用
ThreadPoolUtil.getPool().execute(new Runnable() {
	@Override
	public void run() {
		playService.syncData2(event, (Enroll) enroll);
	}
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM