博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实际项目中Java多线程模型的总结整理
阅读量:6334 次
发布时间:2019-06-22

本文共 705 字,大约阅读时间需要 2 分钟。

   分享一下最近项目中用到的多线程模型。

     

      需要实现:根据租户填写的表单,自动部署ES集群,提供ES服务。

基本思路:

        就是将一个事务生命周期分成不同的阶段,每个阶段都是用线程去负责执行。

        目前主要分为四个阶段:事件监听阶段,事件提交阶段,执行器阶段,状态校验阶段


流程图如下:


线程分类:

        A、监听线程

        B、工作线程

        C、状态校验线程

        D、执行器线程


原理图简单介绍:

       1、AcceptorThread线程:监听操作对列表,将新产生的事件记录扔进事件分类器,并且同时往内存容器中添加一条记录。

       2、事件分类器:根据事件的类型,创建不同的工作线程

       3、工作线程:工作线程是具体干活的,如负责调用marathon的create接口,删除接口,停止接口等     

       4、执行器:

            A、不断的监听执行容器,有任务的话,就去执行,如停止节点,启动节点,恢复节点等操作。

            B、更新节点表的状态,以及 内存缓存容器中节点的状态

       5、OptStateThread:监听内存缓存容器OptMap,如果有新的事件发生,根据类型产生不同的校验线程;

       6、校验线程:具体负责校验的;根据校验的结果来更新集群的状态

总结:

       A、体现了生产者,消费者思想

       B、对事件进行了分割,各自线程只负责自己单独的部分。

       C、对事务的生命周期,要学会进行合理的拆分

       D、要横向思维,分阶段,分模块划分


      代码不是很重要,主要是理解这种设计模式,设计思路;

      其实,可以从Netty的多线程模型中吸取知识,从而应用到以后的项目中。








本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1979357 ,如需转载请自行联系原作者

你可能感兴趣的文章
数字图像处理-----直方图均衡化
查看>>
关于context你必须知道的一切
查看>>
Oracle 10g RAC 启动与关闭
查看>>
类似nike+、香蕉打卡的转场动画效果-b
查看>>
Sql之left join、right join、inner join的区别(转)
查看>>
Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析
查看>>
jack报错
查看>>
Apache Thrift 环境配置
查看>>
用C#从数据库动态生成AdminLTE菜单的一种方法
查看>>
基于粒子滤波的物体跟踪 Particle Filter Object Tracking
查看>>
Oracle笔记
查看>>
黄聪:CamtasiaStudio如何导出视频上传优酷实现高清
查看>>
python多线程之semaphore(信号量)
查看>>
Atitit 图片 验证码生成attilax总结
查看>>
Ping命令
查看>>
网络下载的栅格影像的有关坐标系的转换
查看>>
mysql text字段判断是否为空
查看>>
java.lang.Comparable<T> 接口
查看>>
直接在Chrome里抓取数据
查看>>
函数式编程初探二
查看>>