• 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);


  • 相关阅读:
    前端面试题目汇总摘录(HTML 和 CSS篇)
    The Road to learn React书籍学习笔记(第三章)
    The Road to learn React书籍学习笔记(第二章)
    算法复习:动态规划
    算法复习:回溯法
    算法复习:图
    算法复习:二叉树专题
    算法复习:最短路Dijkstra
    算法复习:BFS与DFS
    算法复习:标记数组 / 数组
  • 原文地址:https://www.cnblogs.com/duanxz/p/5050177.html
Copyright © 2020-2023  润新知