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.“基于消息”的体系。消息是主动的,任务是被动的。需要复杂的并发控制

  • 相关阅读:
    UE4_简易AI_玩家死亡动画bug修复
    UE4_简易AI_Ai攻击
    pikachu-SSRF
    pikachu-XXE漏洞
    pikachu-PHP反序列化
    pikachu-Over permission(越权漏洞)
    pikachu-不安全的文件下载和上传
    pikachu-File Inclusion(文件包含漏洞)
    Web安全之RCF(远程命令,代码执行漏洞)
    Web安全之SQL Inject 2
  • 原文地址:https://www.cnblogs.com/westwind/p/2520557.html
Copyright © 2011-2022 走看看