zoukankan      html  css  js  c++  java
  • MOOONscheduler核心设计图(初稿)

    按以下思路进行设计,非最终设计图,有等进一步思考,以发现问题,需要达到以下目的:
    1. 同时支持线程和进程模式(做了抽象)
    2. Service不和线程绑定
    3. Service独占线程池或进程(进程下再划分线程池)
    4. Session和线程绑定,不跨线程
    5. Service下可以有0到多个Session
    6. 一个Session可以0到多个 子 Session,不限制层级
    7. 子Session和父Session由同一个线程调度
    8. Service的ID从0开始的无符号32位整数
    9. Session的ID从1 开始的无符号32位整数,0被Service占用,以简化程序设计(在后续会讲到原因)
    20682147_1340637114rpot.jpg


    在进程模型,CKernelThread和CServiceThread个数是相等的,而且线程是一对一的。CServieProcess会fork出一个进程,这个进程会创建CServicePool,CServiceThread阻塞同步的接收CProcessMessageBridge发过来的消息,然后处理,直接到处理完后CKernelThread才会去处理下一个消息。但在这过程中,CService和CSession可以输出需要发送到其它Service或节点的消息,CProcessMessageBridge会做相应的处理。

  • 相关阅读:
    C/C++一些库函数的实现
    约瑟夫环问题(Josephus)
    union关键字及大小端模式
    指针数组和数组指针
    巧用位运算
    C/C++生成可执行文件过程
    C语言+Modbus+NXP整体规划
    bug和待完善
    python学习第二课
    python学习第一课
  • 原文地址:https://www.cnblogs.com/aquester/p/9891796.html
Copyright © 2011-2022 走看看