首先需要实现 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()