TianMu
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

C++编译链接模型精要

C编译链接系统 先来回顾C语言的编译流程 : 预处理 -> 编译 -> 汇编 -> 链接 Preprocessor 预处理 输入 .c / .cc 文件 输出 .i (intermediate 中间) 文件 工作 : 将include字段用对应的.h文件替换 替换define字段 处理条件编译 删除注释 Compiler 编译 输入 .i 文件 输出 .s
2025-08-10
#编译链接 #C++20模块

HTTP/2

分为两部分 : 理论知识 和 nghttp2库使用 理论知识可以理解为在HTTP/1.1上做了很多精简优化的工作, 解决了很多冗余的部分, 实现了精细地控制. 提升了加载速度, 减少了连接资源的浪费, 避免的频繁的队头阻塞. 整体理解 依旧使用TCP进行数据传递, 但是一组请求响应不再会长时间占用整个TCP连接, 并且不同的请求都将始终在一条TCP连接上实现. 流机制和帧机制实现了上
2025-08-01
#HTTP

HTTP/1

HTTP/1.0短连接(非持久性连接) 每次HTTP请求都要创建一个新的TCP连接, 响应完就关闭连接. HTTP/1.1长连接, 使用最广泛的HTTP协议 keep-alive : 持久连接Connection: keep-alive : 表示复用已有的TCP连接连续发送多个请求, 不断开当前的TCP连接. Connection: close : 表示想确实关闭连接. 分块
2025-07-20
#HTTP

Linux多线程服务端编程 读书笔记1

第一部分 C++多线程系统编程 析构所在的线程当share_ptr引用计数归零时, 会在归零的这个线程就地析构, 而这个线程不一定是对象诞生的线程. 这就引发出一个问题 : 如果对象的析构比较耗时, 且经常在关键线程触发析构, 就会拖慢关键线程的速度. 这种情况的解决方案是专门做一个阻塞队列存入要析构的智能指针, 另开一个专门析构的线程从队列中取出进行析构. 多线程适用场景 其核心作用在
2025-07-12
#多线程 #Muduo

libuv事件库

回显服务器先实现一个最简的Tcp回显服务器 : 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
2025-07-11
#libuv

boost::asio网络库

主要学习asio网络库有关异步方面的使用 这里先给出一个最简便的TCP异步echo服务器 : 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
2025-07-08
#boost::asio

C++ 协程学习笔记

协程是可以理解为一个可以被暂停(挂起)和唤醒的函数, 系统会帮助你保存协程函数中的局部变量. 协程 vs 线程协程和线程几乎没有任何联系, 它们是相互独立的. 对于执行时间比较短的任务, 不建议用线程来处理, 线程的创建, 调度, 销毁都是会占用资源的. 线程适合那些长时间的任务, 比如轮循或监控. 线程是一个实际的需要操作系统进行调度的对象, 而协程只是函数外加一些在底层跳来跳去的指令.
2025-07-07
#协程

libevent事件库

使用libevent的主要核心就是一套统一事件源的事件处理, 下面是一个echo服务器 : 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
2025-07-04
#libevent

FFmpeg音视频学习(2) QtAPI

本章介绍部分Qt中用于音视频解码的api 本章我们将会在qtcreator中写一段代码实现对一个mp4文件的解码, 所谓解码就是把其中存储的每个视频帧和音频帧取出, 本章先不做展示界面, 只是先读取这些帧的数据. 环境准备 qtcreator 安装ffmpeg 在.pro文件中加入相关依赖 : 12INCLUDEPATH += /usr/includeLIBS += -lavformat
2025-06-28
#ffmpeg

FFmpeg音视频学习(1) 理论准备

理论准备 PCM — Pulse-Code Modulation 脉冲调制编码一种用数字表示采样模拟信号的方法. 要将一段音频模拟信号转换为数字表示,包含如下三个步骤: 1、Sampling(采样) 2、Quantization(量化) 3、Coding(编码) PCM常用指标 : 采样率(Sample rate):每秒钟采样多少次,以Hz为单位。 位深度(Bit-depth):表示用
2025-06-27
#ffmpeg
123…9

搜索

Hexo Fluid
总访问量 次 总访客数 人