偷颗菜抱回家的gravatar头像
偷颗菜抱回家2017-01-11 12:50:24

java开发自定义线程池实例,基于maven构建

2016年10月份的时候就想自己通过所学去实现一个线程池,但是因为种种原因,并未成功。前几天想到这个项目,继续思考怎么实现,于是就有了下文。注意:本人实现的线程池只是用来学习的,有不正之处还望指出。

实现线程池,觉得最重要是实现一个线程执行完任务能够回收到池中,并且下次能够从池中拿到该线程继续使用。10月份的时候想着用数组或者List去模拟一个池,前几天思考用队列是不是会更简单,所以想做就做了。线程池的关闭也是个比较棘手的问题,关闭有两种,一种是完成任务后线程全部关闭,一种是未完成任务全部线程就要结束。

项目使用maven结构,日志打印使用log4j,想学习maven的也可以下载学习,可以实现本地与测试资源自动切换。

项目结构图如下:

java开发自定义线程池实例,基于maven构建

项目测试类main方法,初始化10个线程,执行100个任务:

java开发自定义线程池实例,基于maven构建

项目运行图,可以看到线程被重复利用了:

java开发自定义线程池实例,基于maven构建

最后是线程池关闭,执行完任务后,线程都结束了:

java开发自定义线程池实例,基于maven构建

总结下:

完成了这个线程池之后,对自己的提升也是不小的。接下来就是继续探索java之路。

文件名:threadpool.zip,文件大小:96.498K下载
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友