博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vertx的Actor模型实现
阅读量:5141 次
发布时间:2019-06-13

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

前言

image

note: Context 与 EventLoop 关系 1 : N ; 每次创建一个vericles或者multi instances通过EventLoopGroup.next挑出一个EventLoop,所以是1:N关系; context <=> verticle.总结:1.verticle和multi Instances总和不超过EventLoopSize,multi verticle在同一个EventLoop的    Thread上运行加大负担,如果造成线程阻塞会影响延时任务(Timer,Periodic)的进行和任务事件堆积过大;2.verticle中一般可以不用考虑线程(单线程)安全问题,除了定义static variable、static block、  static method外,verticle之间通过EventBus通信,极端情况本地的verticle之间通过共享内存通信效果更好.3.每創建一個verticle會根據 setting verticle Type 創建context instance , 所以create verticles size    > EventloopSize , 那麼一個Eventloop就會執行 multi verticle handlers.

 

Context Class diagram 如图:

image

Verticle Types:

Verticle Types : 一、Standard Verticles、二、Worker Verticles、三、Multi-threaded worker verticles.本质还是eventloop处理connection、read/write、encode/decode 等等, 事件处理(EventHandler)的逻辑就在 setting verticle type 处理(Thread), 调度逻辑在VertxHandler类配置的context调度,和vertx.executeBlocking->{...} 相同效果.

 

调度框图

 

时序图

image

Multi instances Verticle Structure

image

转载于:https://www.cnblogs.com/cmfa/p/10621177.html

你可能感兴趣的文章
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
CSS属性值currentColor
查看>>
《DSP using MATLAB》Problem 7.37
查看>>
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
解决ajax请求cors跨域问题
查看>>
《收获,不止Oracle》pdf
查看>>
LinkedList<E>源码分析
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Activity之间的跳转:
查看>>
实验四2
查看>>
Android现学现用第十一天
查看>>
多路复用
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
Java学习笔记--字符串和文件IO
查看>>
转 Silverlight开发历程—(画刷与着色之线性渐变画刷)
查看>>
SQL语法(3)
查看>>