一个容易的线程池
一个简单的线程池import?java.util.LinkedList ????public?class?AppThreadPool?{ ??????private?int?poo
一个简单的线程池
import?java.util.LinkedList; ????public?class?AppThreadPool?{ ??????private?int?poolSize; ????????private?LinkedList?queue; ????????public?AppThreadPool(int?poolSize)?{ ??????????this.poolSize?=?poolSize; ??????????queue?=?new?LinkedList(); ??????????FileWorker[]?Pool?=?new?FileWorker[poolSize]; ??????????for?(int?i?=?0;?i?<?Pool.length;?i++)?{ ??????????????Pool[i]?=?new?FileWorker(); ??????????????Pool[i].start(); ??????????} ??????} ????????public?void?addTask(Runnable?r)?{ ??????????synchronized?(queue)?{ ??????????????queue.addLast(r); ??????????????queue.notify(); ??????????} ??????} ????????public?int?getSize()?{ ??????????return?poolSize; ??????} ????????private?class?FileWorker?extends?Thread?{ ??????????public?void?run()?{ ??????????????Runnable?task; ??????????????while?(true)?{ ??????????????????synchronized?(queue)?{ ??????????????????????while?(queue.isEmpty())?{ ??????????????????????????try?{ ??????????????????????????????queue.wait(); ??????????????????????????}?catch?(InterruptedException?e)?{ ??????????????????????????????e.printStackTrace(); ??????????????????????????} ??????????????????????} ??????????????????????task?=?(Runnable)?queue.removeFirst(); ??????????????????} ??????????????????task.run(); ??????????????} ??????????} ??????} ????}??