《C++高并发服务器笔记——第五章项目实战与总结》

news/2024/5/18 14:00:59 标签: 运维, 服务器, 网络, udp, 网络协议

代码地址

《C++高并发服务器笔记——第五章》

  • 5.1、阻塞/非阻塞、同步/异步(网络IO)
    • 1.阻塞/非阻塞、同步/异步(网络IO)
      • ①典型的一次IO的两个阶段是什么?
    • 2.日志系统
      • ①基础知识
      • ②整体概述
      • ③本文内容
      • ④单例模式
        • 1.经典的线程安全懒汉模式
        • 2.局部静态变量之线程安全懒汉模式
      • ⑤饿汉模式
      • ⑥条件变量与生产者-消费者模型
        • 1.生产者-消费者模型
        • 2.自定义队列
      • ⑦基础API
        • 1.fputs
        • 2.可变参数宏__VA_ARGS__
        • 3.fflush
      • ⑧日志系统
        • 1.流程图
        • 2.代码实现
          • .h头文件
          • .cpp文件
  • 5.2、Unix/Linux上的五种IO模型
    • 1.阻塞blocking
    • 2.非阻塞non-blocking(NIO)
    • 3.IO复用(IO_multiplexing)
    • 4.信号驱动(signal-driven)
    • 5.异步(asynchronous)
      • ①异步函数介绍
  • 5.3、web服务器简介HTTP协议
    • 1.Web-Server(网页服务器
    • 2.HTTP协议(应用层的协议)
      • ①简介
      • ②概述
      • ③工作原理
      • ④HTTP请求报文格式
      • ⑤HTTP响应报文格式
      • ⑥HTTP请求方法
      • ⑦HTTP状态码
  • 5.4、服务器编程基本框架和两种高效的事件处理模式
    • 1.服务器编程基本框架
    • 2.两种高效的事件处理模式
      • ①Reactor模式
      • ②Proactor模式
      • ③模拟Proactor模式
  • 5.5、线程池同步机制类封装及线程池实现
    • 1.线程池
    • 2.代码实现
      • ①锁
      • Ⅰ、locker.h
      • Ⅱ、locker.cpp
      • ②条件变量
        • Ⅰ、cond.h
        • Ⅱ、cond.cpp
      • ③信号量
        • Ⅰ、sem.h
        • Ⅱ、sem.cpp
      • ④线程池
        • Ⅰ、threadpool.h
        • Ⅱ、threadpool.cpp

5.1、阻塞/非阻塞、同步/异步(网络IO)

1.阻塞/非阻塞、同步/异步(网络IO)

①典型的一次IO的两个阶段是什么?

2.日志系统

①基础知识

②整体概述

③本文内容

④单例模式

1.经典的线程安全懒汉模式

2.局部静态变量之线程安全懒汉模式

⑤饿汉模式

⑥条件变量与生产者-消费者模型

1.生产者-消费者模型

2.自定义队列

⑦基础API

1.fputs

2.可变参数宏__VA_ARGS__

3.fflush

⑧日志系统

1.流程图

2.代码实现

.h头文件
.cpp文件

5.2、Unix/Linux上的五种IO模型

1.阻塞blocking

2.非阻塞non-blocking(NIO)

3.IO复用(IO_multiplexing)

4.信号驱动(signal-driven)

5.异步(asynchronous)

①异步函数介绍

5.3、web服务器简介HTTP协议

1.Web-Server(网页服务器

2.HTTP协议(应用层的协议)

①简介

②概述

③工作原理

④HTTP请求报文格式

⑤HTTP响应报文格式

⑥HTTP请求方法

⑦HTTP状态码

5.4、服务器编程基本框架和两种高效的事件处理模式

1.服务器编程基本框架

2.两种高效的事件处理模式

①Reactor模式

②Proactor模式

③模拟Proactor模式

5.5、线程池同步机制类封装及线程池实现

1.线程池

2.代码实现

①锁

Ⅰ、locker.h

Ⅱ、locker.cpp

②条件变量

Ⅰ、cond.h

Ⅱ、cond.cpp

③信号量

Ⅰ、sem.h

Ⅱ、sem.cpp

④线程池

Ⅰ、threadpool.h

Ⅱ、threadpool.cpp


http://www.niftyadmin.cn/n/251332.html

相关文章

ios客户端学习笔记(9-1):iOS中常用的控件的功能和使用方法

iOS8开发技术(Swift版):常用控件 目录: ios客户端学习笔记(9-1):iOS中常用的控件的功能和使用方法 第一章:概述 1.1 课程介绍 1.2 开发环境搭建 第二章:UILabel控件 2.…

抗ddos云服务是怎么操作的,原理步骤是什么?

抗ddos云服务是怎么操作的,原理步骤是什么?   抗DDoS云服务是一种基于云计算和网络安全技术的服务,期待在保护用户的网络资源中免受DDoS攻击的影响。本文档的介绍、DDoS抗步骤和操作方法。   一、原理   抗DDoS云服务的原理基于分布式防…

k8s 控制器---Statefulset

1. Statefulset 控制器 StatefulSet 是为了管理有状态服务的问题而设计的。 1.1 什么叫有状态服务? StatefulSet 是有状态的集合,管理有状态的服务,它所管理的 Pod 的名称不能随意变化。数据 持久化的目录也是不一样,每一个 Pod …

【论文阅读】CVPR2023 IGEV-Stereo

用于立体匹配的迭代几何编码代价体 【cvhub导读】【paper】【code_openi】 代码是启智社区的镜像仓库,不需要魔法,点击这里注册 🚀贡献 1️⃣现有主流方法 基于代价滤波的方法和基于迭代优化的方法: 基于代价滤波的方法可以在c…

40岁以上的程序员还容易找到工作吗?聊聊我自己的亲身经历

今天我们来讨论一个比较热门的话题,那就是程序员。如果到了40岁以上还容易找到工作吗?这个问题呢,其实是一个非常现实的问题,也是我们程序员非常关心的一个问题。因为我们每一个程序员,他都会有到40岁的那一天。 首先…

Django--DRf---序列化器:序列化器嵌套

模型表: from django.db import models# Create your models here.class StudentModel(models.Model):id models.AutoField(primary_keyTrue)name models.CharField(max_length32,verbose_name姓名)age models.SmallIntegerField(verbose_name年龄)class_mate_f…

记一次Macbook pro电池修复

记一次Macbook pro电池修复 mac版本 A1708 问题描述 Macbook更换新电池后,在项头栏中,没有显示电池图标,系统设置里面也找不到电池图标。这样开机还得连着电源线 ~ ^~ 原因分析: 有可能是电池排线坏了。 解决方案&#xff1a…

如何在 Mac 上使用 Httrack 克隆网站

再有 homeBrew 的条件下,在终端上键入此命令: $ brew install httrack可以通过 brew info httrack 获取安装地址 $ brew info httrack在访达中进入名为下载的 httrack 版本的文件夹下名为 bin 的文件夹/usr/local/Cellar/httrack/3.49.2_1/bin 打开名…