启动一个线程,用来跟踪队排里的客户请求
- /**
- * 队列服务.用来查看线程队排中的请求.
- * 启动一个线程,用来跟踪队排里的客户请求.
- * 如果队中有客户的请求,则创建一个新线程独立处理,<br>
- * @author guishuanglin 2008-11-3
- *
- */
- public class ConcurrentQueueService extends Thread {
- //IConcurrentCall
- private ConcurrentQueue _queue;
- /**
- * 启动一个线程来跟踪堆中需要处理的对象.
- * @param queue
- */
- public ConcurrentQueueService(ConcurrentQueue queue) {
- _queue = queue;
- start();
- }
- /**
- * 入队
- * @param call
- */
- public void enQueue(IConcurrentCall target) {
- _queue.enQueue(target);
- }
- /**
- * 单一线程跟踪队排请求,并把每个请求交给一个新线程处理.
- * 此处是否需要创建新的线程处理,有待实际需要,因为这将又产生线程并发问题.
- * @param call
- */
- public void run() {
- Runnable call = null;
- while (true) {
- call = (Runnable)_queue.deQueue();
- if(call != null){
- //可以不使用独立的线程处理,直接顺序处理.
- call.run();
- //new Thread(call).start();
- }
- }
- }
- }