多线程设计模式——Thread Pool(线程池)模式

这些都是根据我最近看的《Java实战指南多线程编程(设计模式篇)》所得整理。

模式名称

Thread Pool(线程池)模式

模式解决的问题

一个系统中的线程相对与其所要处理的任务而言,总有一种非常有限的资源,线程不仅在其执行任务是需要消耗CPU时间和内存等资源,线程对象本身以及线程所需的调用栈也占用内存,并且Java中创建一个线程往往意味着JVM会创建相应的依赖与宿主机操作系统的本地线程。所以,为每个或者每一批任务创建一个线程以对其进行执行,通常是一种奢侈而不现实的事情。

解决思路

比较常用的做法就是服用一定数量的线程,由这些线程去执行不断产生的任务。
ThreadPool类负责接收和存储任务以及工作者线程的生命管理。submit用于接收一个任务,客户端代码调用该方法想线程池提交一个任务;shutdown关闭线程池对外提供的服务
Promise可借以获取相应任务执行结果的凭据对象。setResule获取相应任务执行结果的执行结果,getResule设置相应任务执行结果的执行结果。
WorkQueue工作队列,实现任务的缓存。enqueue将任务存入队列,dequeue从队列中取出一个任务。
WorkerThread负责任务执行的工作这线程。run逐一从工作队列中取出任务执行,runTask执行制定的任务。

Created with Raphaël 2.1.0 client
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值