首页 > 其他分享 >自定义线程池

自定义线程池

时间:2023-01-05 09:56:25浏览次数:40  
标签:自定义 private 线程 springframework org import

自定义线程池

package com.intell.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;

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

@Component
public class CustomThreadPool {

   //核心线程数
   private final int corePoolSize = 3;

   //最大线程数量
   private final int maxPoolSize = 8;

   //线程存活时间
   private final int aliveTime = 30;

   
   private final ThreadPoolExecutor threadPoolExecutor;

   public  CustomThreadPool(){
       this.threadPoolExecutor = create();
  }

   public ThreadPoolExecutor create(){
       return new ThreadPoolExecutor(
               corePoolSize,
               maxPoolSize,
               aliveTime,
               TimeUnit.SECONDS,
               new LinkedBlockingQueue<>());
  }

   public void start(Runnable runnable){
       threadPoolExecutor.execute(runnable);
  }


}

自定义线程池方便控制线程不造成资源浪费

线程池可自定义拒绝策略,阻塞队列

Thread.sleep(time) 睡眠的是内部线程,当前方法的线程,如果睡眠被打断会抛出异常

标签:自定义,private,线程,springframework,org,import
From: https://www.cnblogs.com/zzdd/p/17026688.html

相关文章

  • 自定义注解+面向切面 日志记录
    自定义注解packagecom.example.spring.controller;​importjava.lang.annotation.*;​@Target(value=ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Docum......
  • 用XML自定义Excel功能区
    一、XML编写<?xmlversion="1.0"encoding="utf-8"?><customUIxmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbonstartFromScratch="fal......
  • C# 处理实体类赋值(获取嵌套类型,支持list 自定义类型)
    publicstaticTAESEncrypt<T>(Tobj)whereT:class{if(obj==null){returnobj;}varproperties=typeof(T).GetProperties();foreach(System.Reflecti......
  • C# 多线程 术语
    前言本文只是为了复习,巩固,和方便查阅,一些知识点的详细知识会通过相关链接和文献标记出来。概念和术语TPLTaskParallelLibrary任务并行库PLINQParallel LINQ并......
  • 查看进程、线程的方式
    一、Windowstasklist查看所有的进程taskkill杀死进程使用tasklist|findstrjava命令列出所有的java进程信息通过上图可以发现,所有的java进程都列出来了,但......
  • 多线程1
    多线程1一个进程可以有多个线程process、threadmain()主线程还可以运行其他线程线程创建继承Thread类、实现Runnable(接口)、实现Callable(接口)继承Thread,重写()run方法......
  • awc/swing实现超链接的自定义控件
    1、awc/swing实现超链接的自定义控件publicclassHFLinkLabelextendsJLabel{ privatestaticfinallongserialVersionUID=-4533897048399372238L; publicSt......
  • 线程3 - 构建线程的3种方式
    构建线程的三种方式方式1:自定义线程类继承Thread方式2:创建线程对象时传递运行逻辑方式3:创建线程对象时传递实现了Runnable接口的类的对象publicclassThreadWork{......
  • 云redis自定义参数
    云redis自定义参数自定义的参数支持组合排列定义 参数说明支持版本disable-command-list设置禁用命令,用户可根据实际业务需要关闭某些时间复杂度高或危险程......
  • Qt线程测试
    Qt线程测试#include"vcmainthread.h"VCMainThread::VCMainThread(QWidget*parent):QMainWindow(parent){ui.setupUi(this);videoThread1=newVi......