首页 > 其他分享 >ThreadPool线程池工具类

ThreadPool线程池工具类

时间:2023-02-20 23:31:41浏览次数:43  
标签:util service ThreadPool static 线程 new 工具 public


package com.rc.openapi.util;

import com.google.common.util.concurrent.ThreadFactoryBuilder;

import java.util.concurrent.*;

public class ThreadPoolService {


/**
* 自定义线程名称,方便的出错的时候溯源
*/
private static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("111yao-pool-%d").build();


/**
* corePoolSize 线程池核心池的大小
* maximumPoolSize 线程池中允许的最大线程数量
* keepAliveTime 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间
* unit keepAliveTime 的时间单位
* workQueue 用来储存等待执行任务的队列
* threadFactory 创建线程的工厂类
* handler 拒绝策略类,当线程池数量达到上线并且workQueue队列长度达到上限时就需要对到来的任务做拒绝处理
*/
private static ExecutorService service = new ThreadPoolExecutor(
20,
40,
0L,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(1024),
namedThreadFactory,
new ThreadPoolExecutor.AbortPolicy()
);

/**
* 获取线程池
*
* @return 线程池
*/
public static ExecutorService getExecutor() {
return service;
}

/**
* 使用线程池创建线程并异步执行任务
*
* @param r 任务
*/
public static void asynchronousTask(Runnable r) {
service.execute(r);
}
}


标签:util,service,ThreadPool,static,线程,new,工具,public
From: https://blog.51cto.com/u_15973676/6074527

相关文章

  • JDBC工具类
    当完成JDBC操纵时,代码重复度特别高这是之前代码   内容非常的繁琐,每一次都需要重新数据库,每一次都得释放资源。所以有一个工具类packageutil;importjava.io.F......
  • Collections工具类
    Collections是一个操作Set、List和Map等集合的工具类Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对......
  • jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
    一、jienkins集成Maven1.安装Maven下载地址:https://maven.apache.org/download.cgiwget--no-check-certificatehttps://dlcdn.apache.org/maven/maven-3/3.9.0/bin......
  • 第十九章 特殊工具和技术
    第十九章特殊工具与技术控制内存分配重载new和deletenew表达式的工作机理:string*sp=newstring("avalue");//分配并初始化一个string对象string*arr=news......
  • Qt实现画图工具
    #include<QtWidgets>#include"mainwindow.h"#include"scribblearea.h"//![0]MainWindow::MainWindow(){scribbleArea=newScribbleArea;setCentralWidget(scr......
  • ScheduledThreadPoolExecutor的基本使用和源码解读
    1基本使用ScheduledThreadPoolExecutor是一种特殊的线程池,它可以执行延迟任务和定时任务。首先,通常会在全局范围内创建线程池对象,可以是静态变量,或者Spring单例对象:Thr......
  • 开源BI工具DataEase
    在github上找到了一个比较好用的数据可视化开源项目Dataease,版风简洁明了,内部功能丰富强大。适合大部分想简单把自己写好的Excel数据和项目数据进行总结的人使用。开源项目......
  • 常用包管理工具, 国内换源操作以及源地址收集(npm, yarn, pip, docker, linux, github
    常用包管理工具的换源本文将保持更新,以适应不同时代软件源的变化;如发现软件源失效请留言提醒常用包管理工具,国内换源操作以及镜像源地址收集(npm,yarn,pip,doc......
  • 【技术分享】线程本地存储(Thread Local Storage, TLS)
    开源项目:https://girakoo.com/官方文档:https://learn.microsoft.com/en-us/windows/win32/procthread/using-thread-local-storage简介线程本地存储(TLS),可以使多个线程,通......
  • JAVA工具类ObjectUtils.Null
    一、ObjectUtils.Null类作为一个空占位符,其中null具有另外一个含义。例如在HashMap中的HashMap.get(java.lang.Object)方法返回null如果这个Map包含null(也就是有一个ke......