• SPRING中的线程池ThreadPoolTaskExecutor


    一、初始化

    1,直接调用

    1. ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();  
    2. //线程池所使用的缓冲队列  
    3. poolTaskExecutor.setQueueCapacity(200);  
    4. //线程池维护线程的最少数量  
    5. poolTaskExecutor.setCorePoolSize(5);  
    6. //线程池维护线程的最大数量  
    7. poolTaskExecutor.setMaxPoolSize(1000);  
    8. //线程池维护线程所允许的空闲时间  
    9. poolTaskExecutor.setKeepAliveSeconds(30000);  
    10. poolTaskExecutor.initialize();  

    2、配置文件

    1. <!-- 配置线程池 -->  
    2. <bean id ="taskExecutor"  class ="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >  
    3.     <!-- 线程池维护线程的最少数量 -->  
    4. <span style="white-space:pre">  </span><property name ="corePoolSize" value ="5" />  
    5.     <!-- 线程池维护线程所允许的空闲时间 -->  
    6. <span style="white-space:pre">  </span><property name ="keepAliveSeconds" value ="30000" />  
    7.     <!-- 线程池维护线程的最大数量 -->  
    8. <span style="white-space:pre">  </span><property name ="maxPoolSize" value ="1000" />  
    9.     <!-- 线程池所使用的缓冲队列 -->  
    10. <span style="white-space:pre">  </span><property name ="queueCapacity" value ="200" />  
    11. </bean>  

    程序里面获取:

    ApplicationContext ctx =  new ClassPathXmlApplicationContext("applicationContext.xml");
    ThreadPoolTaskExecutor poolTaskExecutor = (ThreadPoolTaskExecutor)ctx.getBean("taskExecutor");


    二、利用线程池启动线程
    Thread udpThread = new Thread(udp);
    poolTaskExecutor.execute(udpThread);
    获取当前线程池活动的线程数:
    int count = poolTaskExecutor.getActiveCount();
    logger.debug("[x] - now threadpool active threads totalNum : " +count);


  • 相关阅读:
    高并发系统中的常见问题
    区块链需要解决诸多问题
    什么是“区块链”技术
    github源码开源区块链浏览器
    JavaScript 内存
    行为驱动开发(BDD)
    Vue.js
    Net程序员学习Linux
    Mybatis数据操作
    Metatable和Metamethod(转)
  • 原文地址:https://www.cnblogs.com/duanxz/p/5050177.html
Copyright © 2020-2023  润新知