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

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/westwind/p/2520557.html
Copyright © 2011-2022 走看看