zoukankan      html  css  js  c++  java
  • C++网络编程(卷1):学习笔记(四)

    服务器可以分为iterative,concurrent,reactive等几大类

    iterative服务器在处理后续请求之前,会完整地处理每一个客户的请求。在处理一个请求时,要么将其他请求排成队列,要么忽略。因此最适合以下两种服务:短期服务和不经常运行的服务

    concurrent服务器同时处理多个客户请求,在执行服务时,要么使用多线程,要么使用多进程。并发式服务器非常适合“I/O操作频繁”的服务和“执行时间会变化”的长周期服务

    reactive服务器几乎是同时处理多个请求---尽管所有的处理实际上在一个线程中完成。存在以下局限性:编程的复杂性增加,可靠性和性能降低

    Eager spawning :  线程池:1)Half sync/Half async

                                          2) Leader/Followers

    On demand spawning:  每个请求一个线程;每个连接一个线程

    线程调度模型:N:1模型               (进程竞争范围)1个用户进程阻塞会影响整个进程的所有线程

                        1:1模型               这里也称系统竞争范围

                       N:M模型               这里综合了上面两种情况,并针对阻塞做了特殊处理

    这里的指的是用户的线程与内核的线程的对应关系

    并发体系是联系以下要素的纽带:CPU,数据和控制消息,执行任务的服务

    并发体系的规范类型有:

    1.“基于任务”的体系。任务是主动的,任务中处理的消息是被动的。在一个任务中,或一个层次上,一般不需要同步

    2.“基于消息”的体系。消息是主动的,任务是被动的。需要复杂的并发控制

  • 相关阅读:
    ChineseAlphabetUtil获取汉字首字母工具类
    RandomCodeUtil随机数工具类,随机生成数字、字母、数字字母组合、中文姓名
    ValidateUtil常用验证工具类,如手机、密码、邮箱等
    聊天项目
    日期
    字符串
    java中属性,set get 以及如何学习类的一些用法
    继承 多态 封装
    方法 属性 构造方法和包
    面向对象知识
  • 原文地址:https://www.cnblogs.com/westwind/p/2520557.html
Copyright © 2011-2022 走看看