![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++编程
wigginswu
热风
展开
-
【读书笔记】《Redis设计与实现(第二版)》:Part2 单机数据库的实现 (一)
本文是接着上一篇文章【读书笔记】《Redis设计与实现(第二版)》:Part 1数据结构与对象继续对书中内容的学习和总结,主要与redis中数据库的实现和提供的相关操作有关。 9. 数据库 9.1 服务器中的数据库 redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redsiDb结构,每个redisDb结构代表一个数据库: struct redisServer{ // ... // 一个数组,保存.原创 2020-07-04 22:19:58 · 171 阅读 · 0 评论 -
【服务器编程】Linux多进程编程(二)
本文接这上一篇【服务器编程】Linux多进程编程(一)的内容介绍Linux多进程编程中常用的两种方式:共享内存和消息队列。 本文的内容是阅读总结游双的《Linux高性能服务器编程》第13章“多进程编程“而来 共享内存 共享内存是最高效的IPC机制,因为它不涉及进程之间的任何数据传输。这种高效率带来的问题是,我们必须用其他辅助手段来同步进程对共享内存的访问,否则会产生竞态条件。Linux共享内存的API都定义在sys/shm.h头文件中,包括4个系统调用:shmget、shmat、shmdt和shmctl.原创 2020-07-04 22:08:51 · 141 阅读 · 0 评论 -
【服务器编程】Linux多进程编程(一)
多进程编程 进程是Linux操作系统环境的基础,它控制着系统上几乎所有的活动。以下我们将探讨Linux多进程编程,包括如下内容: 复制进程映象的fork系统调用和替换进程映象的exec系列系统调用。 僵尸进程以及如何避免僵尸进程。 进程间通信 在进程间传递文件描述符的通用方法 本文的内容是阅读总结游双的《Linux高性能服务器编程》第13章“多进程编程“而来 fork系统调用 #include <sys/types.h> #include <unistd.h> pid_t f原创 2020-06-13 18:40:56 · 181 阅读 · 0 评论 -
【服务器编程】Linux多线程编程(pthread)
本文讨论的线程相关的内容都属于POSIX线程(简称pthread)标准,线程库是NPTL(Native POSIX Thread Library),以下的具体包括: 创建线程和结束线程 读取和设置线程属性 POSIX线程同步方式:POSIX信号量、互斥锁和条件变量 Linux线程概述 线程模型 线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程可分为内核线程和用户线程。内核线程,有的系统上称为“轻量级线程”,运行在内核空间,由内核来调度;用户线程运行在用户空原创 2020-05-30 21:10:56 · 356 阅读 · 0 评论