最新文章

NEW C++_ 模板学习一

C++_ 模板学习一

bingliaolong C++ 8小时前 2 0

函数模板与实例化 模板是什么 普通函数只能处理声明好的类型 如果还要处理 double、std::string,不使用模板就需要重复编写 模板的作用是 描述一组具有相同结构、但类型不同的函数 这段代码本身不是一个普通函数,而是一个函数模板,也可以理解为编译器生成函数的“配方” 模...

NEW C++_decltype推导

C++_decltype推导

bingliaolong C++ 12小时前 3 0

概述 decltype 从 C++11 引入,用来在编译期获取一个实体或表达式的类型 它与 auto 最大的区别是: auto 通常会进行类型退化,而 decltype 会精确保留 const、引用、数组以及表达式的值类别 规则一:未加括号的名字或成员访问 如果操作数是: 未加括...

NEW C++20_第三篇、协程二

C++20_第三篇、协程二

bingliaolong C++ 1天前 5 0

概述 C++20 协程的核心不是“创建线程”,而是 把一个函数编译成可以暂停、保存现场、稍后恢复的状态机 协程本身不提供线程、调度器、事件循环或异步 I/O 它只提供语言机制,真正决定“何时恢复”的是 Awaiter、线程池、Asio 等运行时 关键字 co_await 等待某个...

ASIO:学习二

ASIO:学习二

bingliaolong Asio 3天前 4 0

thread_info_base 干什么的 是一个per-thread(每线程)内存池 / 分配器缓存,核心目的是:减少异步操作中反复 new/delete 的开销 背景 ASIO 里每次调用 async_read、async_write 之类的操作,内部都需要分配一小块内存来保...

ASIO:学习一

ASIO:学习一

bingliaolong Asio 5天前 13 0

同步 I/O:服务端 code 同步 I/O:客户端 code 异步I/O:服务端 code 异步I/O:客户端 code 定时器 code 线程池 code strand 概述 io_context::run() 可以被多个线程同时调用(线程池模式)。这时候多个 handler...

C++_原子操作内存序

C++_原子操作内存序

bingliaolong C++ 1周前 13 0

std::memory_order_relaxed 总结1 线程 A 使用 memory_order_relaxed 写入 x,不会与线程 B 对 x 的读取建立 happens-before 关系,因此无法保证线程 B 的读取一定能看到 A 写入的新值 本质 多核 CPU 并不...

Windows线程、Windows纤程、Linux线程

Windows线程、Windows纤程、Linux线程

线程 概述 一个线程不仅仅是一段正在执行的代码,而是下面几部分的集合 CPU 执行现场 内核调度信息 用户态线程环境 线程私有数据 Windows和Linux Linux 和 Windows 的整体模型非常相似 同一进程内的线程共享进程资源,但每个线程拥有独立的执行现场、栈、调度...

Git应用记述二

Git应用记述二

bingliaolong Git 1周前 3 0

终端命令操作 add了文件,从工作区去掉 没有add,撤销改动 commit了,没有push,撤销commit,保留文件改动 commit了,没有push,撤销commit,不保留文件改动 本地commit了多(3)次,没有push,合并为一次 进入编辑 可以修改顺序,或操作,保...

Windows网络编程五

Windows网络编程五

bingliaolong Socket 2周前 8 0

overlapped i/o 概述 Overlapped I/O 是 Windows 平台特有的异步 I/O 模型,是 Windows 高性能网络编程(尤其是 IOCP)的基础 为什么需要它 同步 I/O(如 Linux 下常见的 recv/send)调用会阻塞线程,直到操作完成...

Windows网络编程四

Windows网络编程四

bingliaolong Socket 2周前 8 0

常用socket选项 概述 Socket 选项通过 setsockopt() / getsockopt() 函数来设置和获取,用于控制套接字的行为 参数 level:选项所在的协议层(如 SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP) optname:具体选...

扫一扫二维码分享