浏览 1420 次
锁定老帖子 主题:一个简单的线程池
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-13
模拟一个java的线程池,虽然jdk1.5以后已经存在。 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(); } } } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |