首页 > 编程语言 > 详细

线程池

时间:2020-09-07 14:42:32      阅读:52      评论:0      收藏:0      [点我收藏+]

1. 什么是线程池?

    顾名思义,存放线程的一个池子。

2.怎么设计一个线程池

    (1) 新建一个数组,创建一堆线程存放进去;

    (2) 线程池中的线程来处理任务,处理完成后回收线程而不是销毁线程;

    (3) 设计等待队列来存放来不及处理的任务;

    (4) 拒绝策略

一般一个简单线程池至少包含下列组成部分。

  1. 线程池管理器(ThreadPoolManager):用于创建并管理线程池
  2. 工作线程(WorkThread): 线程池中线程
  3. 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。
  4. 任务队列:用于存放没有处理的任务。提供一种缓冲机制

后来才发现线程池其实是这样的一个流程:

  1. 创建线程池内所需的线程数量,并指定一个统一的函数,比如work();
  2. work()主动任务队列里找任务做,如果空的话则阻塞。
  3. 任务可以是不同的对象,但是他们提供统一的任务处理接口,比如process();可以用模板来增加扩展性。
  4. work()函数取来任务对象,然后调用process()就行了。
  5. 当然还要涉及任务队列的同步互斥问题。

线程池

原文:https://www.cnblogs.com/Annetree/p/13626349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!