文档章节

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

东湖畔新家
 东湖畔新家
发布于 2017/05/09 18:57
字数 251
阅读 1
收藏 0

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

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
博文 170
码字总数 31582
作品 0
杭州
后端工程师
私信 提问
(学习心得):进程,线程,超线程,并发,并行 等概念

前言: 此陋文来自最近对阅读《深入理解计算机系统》与《微型计算机体系结构:Intel Core Duo / i 系列微处理器技术应用》两本书的学习体会, 前者从 程序员的视角来探讨计算机系统中各部件的...

shayi
2012/11/26
5.7K
28
Atom 团队推出下一代跨平台高性能文本编辑器 Xray

Atom 团队正在开发一个新的基于 Electron 的文本编辑器 Xray ,目前正处于试验阶段。该项目结合了团队在 Atom 上四年的开发经验,目标是构建一个高性能、高可扩、高兼容、跨平台、适用于任何...

王练
2018/03/07
7.6K
29
Netty干货分享:京东京麦的生产级TCP网关技术实践总结

1、引言 京东的京麦商家后台2014年构建网关,从HTTP网关发展到TCP网关。在2016年重构完成基于Netty4.x+Protobuf3.x实现对接PC和App上下行通信的高可用、高性能、高稳定的TCP长连接网关。 早期...

JackJiang2011
2017/12/01
0
0
11《Java核心技术》之Java提供了哪些IO方式? NIO如何实现多路复用?

一、提出问题 IO 一直是软件开发中的核心部分之一,伴随着海量数据增长和分布式系统的发展,IO 扩展能力愈发重要。幸运的是,Java 平台 IO 机制经过不断完善,虽然在某些方面仍有不足,但已经...

飞鱼说编程
2018/10/22
0
0
新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、...

JackJiang2011
2018/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

etcd 在超大规模数据场景下的性能优化

作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernete...

zhaowei121
28分钟前
2
0
MYSQL主从介绍

MYSQL软件概念 MYSQL是一款数据库,关系型数据库系统; MYSQL主要用于存放:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息等; MYSQL在WEB架构...

寰宇01
31分钟前
2
0
org.apache.cxf.interceptor.Fault: null

出现这个异常的原因:json字符串为null 所以会出现这个错误。需要加上条件判断。 如果不是这个原因,可以参考: https://blog.csdn.net/rshw123456/article/details/8001677...

嘿嘿嘿IT
32分钟前
1
0
gradle控制so库的输出位置

gradle.taskGraph.beforeTask { task -> String abi = "lib/armeabi/" def TASK_NAME = "transformNativeLibsWithStripDebugSymbolFor" String buildType = "debug" //S......

Gemini-Lin
32分钟前
3
0
AndroidL 开机展示Keyguard锁屏机制初探

目录 目录 锁屏时序图 开机启动到PhoneWindowManager的systemReady方法 锁屏加载流程 PhoneWindowManager KeyguardServiceDelegate KeyguardServiceWrapper KeyguardService KeyguardViewMe......

天王盖地虎626
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部