摘要:
📖 UNP Part-2: Chapter 5. TCP Client/Server Example 的读书笔记。 阅读本文前,建议先阅读多线程服务器的实现,熟悉常见的 TCP 网络通信 API 的基本使用。 本章的主要内容是基于 TCP 协议,实现一个多进程服务器的 Demo,作者假设了若干个场 阅读全文
摘要:
题目:25. K 个一组翻转链表 先看怎么反转链表(写不出来的话,我建议你爪巴): class Solution { public: ListNode* reverseList(ListNode* head) { if (head == nullptr) return nullptr; auto p 阅读全文
摘要:
本文基于 C 标准库提供的网络通信 API,使用 TCP ,实现一个简单的多线程服务器 Demo 。 首先要看 API,这是一项十分无聊的工作,我看的头都晕了 🤒️ 。 API 字节序转换 函数原型: #include <arpa/inet.h> uint64_t htonll(uint64_t 阅读全文
摘要:
本文总结运输层的 2 个重要协议, TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol) 的知识点。 参考文章。 对比 TCP UDP 可靠传输 不可靠传输,尽最大可能交付 有连接,面向字节流(把应用层传下来的报文看成字 阅读全文
摘要:
📒 APUE 一书的第八章学习笔记。 进程标识 大家都知道使用 PID 来标识的。 系统中的一些特殊进程: PID = 0: 调度进程,也称为交换进程 (Swapper) PID = 1: init 进程,自检结束后由内核调用,读取与系统初始化相关的文件,如 /etc/init.d/*, /etc 阅读全文
摘要:
参考: [1] https://www.cnblogs.com/wangpei0522/p/4476470.html [2] https://stackoverflow.com/questions/8940090/is-it-safe-on-linux-to-mix-new-and-delete 现 阅读全文
摘要:
一篇 naive 的短文。 PV 操作实际上指的是 信号量 的 2 种基本操作,在 POSIX 的实现中,P 操作对应 sem_wait,而 V 操作对应 sem_post 。 假设有 5 个进程/线程,其运行的先后次序必须要满足以下依赖关系: 问题:如何使用 PV 操作实现多线程/多进程的同步? 阅读全文
摘要:
📓 APUE 一书的第七章学习笔记。 进程终止 有 8 种方式可以使得进程终止,5 种为正常方式: Return from main Calling exit() Calling _exit or _Exit Return of the last thread from its start rou 阅读全文
摘要:
STL 即标准模板库(Standard Template Library),是 C++ 标准库的一部分,里面包含了一些模板化的通用的数据结构和算法。STL 基于模版的实现,因此能够支持自定义的数据结构。 STL 中一共有 6 大组件: 容器 (container) 迭代器 (iterator) 算法 阅读全文
摘要:
LRU (Least Recently Used), 即最近最少使用算法,是一种常见的 Cache 页面置换算法,有利于提高 Cache 命中率。 LRU 的算法思想:对于每个页面,记录该页面自上一次被访问以来所经历的时间 \(t\),当淘汰一个页面时,应选择所有页面中其 \(t\) 值最大的页面, 阅读全文