二 工作线程---WorkerThread 顾名思义 它本身就是一个线程,而且是专门用来工作的,工作线程的主要任务是从任务队列中取出任务 然后执行任务
三 任务队列---TaskQueue FIFO数据结构 在出对入队的时候要锁定对象避免两个线程重复处理某任务 在这里我采用的是java提供的ConcurrentLinkedQueue队列,这是一个用链表实现的队 可无限的扩大,具体用法请看doc 用到队列的地方主要有两个 addTask(Task task) 和 Task task = queue.poll(); 四 任务接口---Task 任务接口只有一个方法 execute(),使用者只需实现这个接口就可以了
用法:
可以看出用户的使用非常简单 在jdk5中 java提供了线程池 有一点注意 千万不要在servlet中调用线程池 因为servlet本来就是一个线程池
posted on 2008-09-07 11:10 大石头 阅读(209) 评论(0) 编辑 收藏 所属分类: 多线程
Powered by: BlogJava Copyright © 大石头