首先需要实现 ThreadPool接口中 SizeThreadPool 用来控制线程队列的大小

属性:

  •          ConcurrentLinkedQueue  _threads, // 线程队列 ,需线程安全
  •           BlockingQueue  _jobs; // 任务队列 , 需线程安全
  •           AutomicInteger startThread; // 目前运行线程的个数
  •          AutomicInteger idleThread  // 目前空闲线程的个数
  •          Object joinLock ; // 用来实现join方法中 的 当前线程等待
  •          还有 诸如 maxThreads,minThreads,maxIdleTimeMs,name

方法 :

  •        start() *
  •        stop() *
  •        interrupt(long id) *
  •        dispatch(Runnable runnable)  *
  •        join()  *
  •        getThreads() 
  •        getIdleThreads()
  •        isLowOnThreads()