zl程序教程

您现在的位置是:首页 >  后端

当前栏目

spring-线程池(3)

2023-09-11 14:13:56 时间

一、初始化

1,直接调用

import java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy;

import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();  
        //线程池所使用的缓冲队列  
        poolTaskExecutor.setQueueCapacity(10);  
        //线程池维护线程的最少数量  
        poolTaskExecutor.setCorePoolSize(2);  
        //线程池维护线程的最大数量  
        poolTaskExecutor.setMaxPoolSize(3);  
        //线程池维护线程所允许的空闲时间  
        poolTaskExecutor.setKeepAliveSeconds(300);
        
        poolTaskExecutor.setRejectedExecutionHandler(new CallerRunsPolicy());
        poolTaskExecutor.initialize();
        
        for (int i = 0; i < 25; i++) {
            MessagePrinterTask m=new MessagePrinterTask("Message" + i);
            poolTaskExecutor.execute(m);
            System.out.println("add Thread:"+i);
        }
        
    }
}

结果是