读书人

构建高性能工作线程 4 具体应用

发布时间: 2013-01-01 14:04:19 作者: rapoo

构建高性能工作线程 四 具体应用

继承工作线程的具体任务线程

public class BeenCoverThread extends WorkThread {    //缓冲队列,任务线程处理完结果放入到缓冲队列    private LinkedBlockingQueue beenCoverQueue;    //taskExecutor 线程池出入线程进行监控   //beenCoverQueue 传入缓冲队列   public BeenCoverThread (CallInfo callInfo,TaskExecutor taskExecutor, LinkedBlockingQueue beenCoverQueue) {      super(taskExecutor);      this.beenCoverQueue= beenCoverQueue;   }    //实现父类,具体做的任务在此完成,一些很耗时的操作放入此处完成    public void doTask() throws Exception {        。。。。      beenCoverQueue.offer(beenInfo);//处理结果放入缓冲队列     。。。。   }}

?
定时任务进行定期启动任务

public class QueryCallTask {     //缓冲队列     private static LinkedBlockingQueue beenCoverQueue = new LinkedBlockingQueue<BeenCoverInfo>();         //已经在配置的  扩展spring后的线程池     private TaskExecutor beenCoverExecutor;     // 定时任务 执行方法        public void execute() {          .......           beforeExcute();//进入线程前进行全局缓冲区一些操作          .......           for (int i = 0; i < callList.size(); i++) {                 CallInfo callInfo = callList.get(i);                 beenCoverExecutor.execute(new BeenCoverThread(                       callInfo,beenCoverExecutor,beenCoverQueue)           }          .......     }          private void beforeExcute(){        。。。     final LinkedBlockingQueue beenCoverQueue2 = new LinkedBlockingQueue(beenCoverQueue);//复制到新缓冲       beenCoverQueue.clear();//清空全局缓冲       .....       cationDao.batchUpdate(beenCoverQueue2 );//主线程操作新缓冲     。。。    }}

?


1 楼 zgdodo 2012-10-09 没太明白缓存区的作用 2 楼 sblig 2012-10-09 zgdodo 写道没太明白缓存区的作用
全局缓存 移交给主线程后 继续放入工作线程池中

读书人网 >编程

热点推荐