偷颗菜抱回家
2017-01-11 12:50:24
原
java开发自定义线程池实例,基于maven构建
2016年10月份的时候就想自己通过所学去实现一个线程池,但是因为种种原因,并未成功。前几天想到这个项目,继续思考怎么实现,于是就有了下文。注意:本人实现的线程池只是用来学习的,有不正之处还望指出。
实现线程池,觉得最重要是实现一个线程执行完任务能够回收到池中,并且下次能够从池中拿到该线程继续使用。10月份的时候想着用数组或者List去模拟一个池,前几天思考用队列是不是会更简单,所以想做就做了。线程池的关闭也是个比较棘手的问题,关闭有两种,一种是完成任务后线程全部关闭,一种是未完成任务全部线程就要结束。
项目使用maven结构,日志打印使用log4j,想学习maven的也可以下载学习,可以实现本地与测试资源自动切换。
项目结构图如下:
项目测试类main方法,初始化10个线程,执行100个任务:
项目运行图,可以看到线程被重复利用了:
最后是线程池关闭,执行完任务后,线程都结束了:
总结下:
完成了这个线程池之后,对自己的提升也是不小的。接下来就是继续探索java之路。
猜你喜欢
请下载代码后再发表评论
文件名:threadpool.zip,文件大小:96.498K
下载
- /
- /threadpool-core
- /threadpool-core/.git
- /threadpool-core/.git/COMMIT_EDITMSG
- /threadpool-core/.git/FETCH_HEAD
- /threadpool-core/.git/HEAD
- /threadpool-core/.git/branches
- /threadpool-core/.git/config
- /threadpool-core/.git/hooks
- /threadpool-core/.git/index
- /threadpool-core/.git/logs
- /threadpool-core/src
- /threadpool-core/src/main
- /threadpool-core/src/main/java
- /threadpool-core/src/main/java/com
- /threadpool-core/src/main/java/com/jp
- /threadpool-core/src/main/java/com/jp/nian
- /threadpool-core/src/main/java/com/jp/nian/threadpool
- /threadpool-core/src/main/java/com/jp/nian/threadpool/core
/threadpool-core/src/main/java/com/jp/nian/threadpool/core/Pool.java
/threadpool-core/src/main/java/com/jp/nian/threadpool/core/PoolThread.java
/threadpool-core/src/main/java/com/jp/nian/threadpool/core/Task.java
/threadpool-core/src/main/java/com/jp/nian/threadpool/core/TestMain.java
/threadpool-core/src/main/java/com/jp/nian/threadpool/core/ThreadPool.java
- /threadpool-core/src/main/java/com/jp/nian/threadpool/core
- /threadpool-core/src/main/java/com/jp/nian/threadpool
- /threadpool-core/src/main/java/com/jp/nian
- /threadpool-core/src/main/java/com/jp
- /threadpool-core/src/main/java/com
- /threadpool-core/src/main/java
- /threadpool-core/src/main
- /threadpool-core/.git
- /threadpool-core
![最代码相关代码源代码列表](https://static.zuidaima.com/resource/img/heart_ico.png)
![最代码最近下载分享源代码列表](https://static.zuidaima.com/resource/img/heart_ico.png)
heweimin LV13
2022年7月18日
2469095052 LV8
2022年5月27日
mylzdy LV12
2022年5月12日
2252536772 LV21
2020年7月22日
lironggang LV38
2019年9月17日
lookerKing LV1
2019年8月28日
huohaixiang LV2
2019年8月19日
8317073 LV12
2019年7月16日
cj1234 LV6
2019年5月6日
191609616 LV5
2019年3月8日
![最代码最近浏览分享源代码列表](https://static.zuidaima.com/resource/img/cattle_ico.png)
爱情戴罪的羔羊 LV7
4月2日
sky1044 LV1
2月19日
heweimin LV13
2022年7月18日
xuexizhuanyong23 LV16
2022年7月3日
2469095052 LV8
2022年5月27日
mylzdy LV12
2022年5月12日
随便取个名字_哈哈 LV27
2021年11月7日
vae222 LV2
2021年5月3日
zhou4048 LV1
2021年4月15日
xb1406112453 LV5
2021年4月14日