首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自己实现一个简单的Java线程池

自己实现一个简单的Java线程池

线程池技术大家应该都不陌生,应用在很多方面,数据库连接池,服务器中的请求连接池等,都用到了池化技术。线程池的一个好处就是减少了创建和销毁线程的额外开销,再就是可以管理线程。

Java的JDK中自带线程池的实现,功能满足了绝大数的需求,为了直观的感受下线程池的实现,自己实现一个简单的线程池。

1、定义一个接口TPool,需要添加任务的方法和关闭线程池的方法。

线程池接口

2、线程池的实现类,实现思路:定义一个队列,存储任务列表,定义一个集合存储工作线程,定义布尔变量running作为线程池的执行状态,false是关闭所有线程,默认是true。初始化的时候创建指定数量的线程并放入集合中,每个工作线程会从队列中获取任务并执行。每次添加任务只放到队列中,等待线程获取。

TPoolImpl线程池

3、做个测试,验证线程池能否使用,

测试线程池

输出结果如下,说明线程池基本能用,细节待优化。

测试任务:1

测试任务:2

测试任务:4

测试任务:3

测试任务:6

测试任务:7

测试任务:5

测试任务:8

测试任务:9

测试任务:11

测试任务:10

测试任务:12

测试任务:13

测试任务:14

测试任务:15

线程池很多细节都没有实现,只是演示线程池的实现原理。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200307A0SABL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券