在开发中使用线程,经常不经意间就new Thread()一个出来,然后发现,这样做不是很好,特别是很多线程同时处理的时候,会出现CPU被用光导致机器假死,线程运行完成自动销毁后,又复活的情况。

所以在这个时候,就需要使用到线程池。。

线程池就是类似数据库连接池,限定一个规定大小的连接数(线程数),然后,需要处理的线程直接调用连接池执行线程。当插入的线程个数超过线程池个数的时候,就会排队等待。。。

线程池不需要到别的地方找,JDK就自带有一个挺不错的池:java.util.concurrent.ExecutorService。

下面是个线程池工具类。。

 package com.iafclub.jrrestServer.thread;

 import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; /**线程池
*
* @author chenweixian
*
*/
public class ThreadPool{
private static ThreadPool threadPool;
// 线程池
private ExecutorService executorService = null; private ThreadPool(){
// 线程池加载10个线程
executorService = Executors.newFixedThreadPool(10);
} public static synchronized ThreadPool getInstance(){
if (threadPool == null){
threadPool = new ThreadPool();
}
return threadPool;
} /**执行线程
*
* @param thread
*/
public void threadDo(Thread thread){
executorService.submit(thread);
} }

最新文章

  1. 打造高效前端工作环境 - tmux
  2. LVM 管理减少swap分区空间增加到根分区
  3. 从零自学Hadoop(06):集群搭建
  4. 配置nginx+php
  5. Android图片压缩(质量压缩和尺寸压缩)
  6. JAVA CDI 学习(1) - @Inject基本用法
  7. uva 107 - The Cat in the Hat
  8. iOS 上线被拒收集
  9. 【循序渐进学Python】4. Python中的序列——字典
  10. JavaScript 执行环境(执行上下文) 变量对象 作用域链 上下文 块级作用域 私有变量和特权方法
  11. Ionic Demo 解析
  12. python爬虫实战 获取豆瓣排名前250的电影信息--基于正则表达式
  13. BZOJ 1434: [ZJOI2009]染色游戏
  14. Oracle数据库中SCOTT用户下的默认表
  15. jquery获取元素节点
  16. oracle nvl2函数
  17. git(二) 分支管理
  18. eclipse的这几个小玩意
  19. Pulsar-Producer实现简介
  20. git个人学习总结

热门文章

  1. Java 包的理解与使用
  2. soapUI对webservices进行压力测试
  3. (十二)Sun公司的Jstl标签库详细介绍
  4. 一个好隐蔽的C/C++代码bug
  5. 系统集成Facebook授权发布帖子以及获取帖子评论等功能
  6. 20191011-构建我们公司自己的自动化接口测试框架-Util的ClearData模块
  7. SAS学习笔记9 利用SAS绘制地图
  8. socat安装使用方法
  9. MySQL 字段类型介绍
  10. C# wsdl.exe 生成类文件