
Linux高并发服务器开发笔记
C/C++项目
风筝_
这个作者很懒,什么都没留下…
展开
-
Reactor和Proactor模式
主线程只负责监听文件描述符上是否有事件发生,有的话就将可读可写事件放入请求队列,交给工作线程去处理。除此之外,主线程不做任何实质性的工作。读写数据、接受新的连接、以及处理客户请求均在工作线程中完成。Proactor模式将所有的I/O操作都交给主线程和内核来处理(进行读写),工作线程只负责业务逻辑。Proactor模式是异步I/O,读写是内核完成的,完成后通知应用程序(通知方法如信号)。使用同步I/O模拟Proactor模式,该方法中,主线程执行数据读取,读写完成后,通...原创 2021-03-31 19:50:52 · 312 阅读 · 0 评论 -
线程池
原理:主线程有了任务后,把任务放到工作队列中,线程池中的线程一直循环去工作队列中取任务。如果工作队列为空,就等待;如果工作队列不为空,就取任务,执行;类似于生产者消费者模型:线程池类的私有变量:线程池的构造函数:里面主要是线程创建出来后要执行的代码threadCount为线程池中线程的数量,用for循环创建threadCount个线程;每个线程创建好之后就死循环,从工作队列中取任务,执行;如果工作队列不为空,并且线程池没有关闭,就阻塞等待;向工作队列中添加任务原创 2021-03-31 16:22:44 · 169 阅读 · 1 评论 -
4.32-4.35 UDP通信实现、广播、组播、本地套接字通信
目录1.UDP通信2.广播3.组播(多播)4.本地套接字通信1.UDP通信2.广播3.组播(多播)4.本地套接字通信原创 2021-02-28 16:05:38 · 146 阅读 · 0 评论 -
4.25-4.31 I/O多路复用
目录1.I/O多路复用(I/O多路转接)2.select3.poll4.epoll1.I/O多路复用(I/O多路转接)2.select3.poll4.epoll原创 2021-02-27 21:26:05 · 188 阅读 · 0 评论 -
4.8-4.19socket介绍、字节序、字节序转换函数、socket地址、ip地址转换函数、tcp通信流程、socket函数、TCP三次握手、滑动窗口、TCP四次挥手
目录1. socket介绍2.字节序3. socket地址4.IP地址转换(字符串ip-整数,主机、网络字节序的转换)5.TCP通信流程6.套接字函数7.TCP三次握手8.TCP滑动窗口9.TCP四次挥手1. socket介绍2.字节序3. socket地址4.IP地址转换(字符串ip-整数,主机、网络字节序的转换)5.TCP通信流程6.套接字函数7.TCP三次握手原创 2021-02-26 16:26:46 · 285 阅读 · 0 评论 -
4.4-4.7网络模型、协议
目录1.网络模型2.协议1.网络模型2.协议原创 2021-02-26 16:06:06 · 155 阅读 · 0 评论 -
4.1-4.3网络结构模式、MAC地址、IP地址、端口
目录1.网络结构模式2.MAC地址3.IP地址4.端口1.网络结构模式2.MAC地址3.IP地址4.端口原创 2021-02-25 17:10:06 · 172 阅读 · 0 评论 -
3.12-3.14生产者和消费者模型、条件变量、信号量
目录1.生产者消费者模型2.条件变量3.信号量1.生产者消费者模型2.条件变量3.信号量初始化的值:生产者-目前可以生产几个 -n 消费者-目前可以消费几个 -0...原创 2021-02-25 15:17:23 · 174 阅读 · 0 评论 -
3.8-3.11线程同步、互斥锁、死锁、读写锁
目录1.线程同步2.互斥锁/互斥量3.死锁4.读写锁1.线程同步2.互斥锁/互斥量3.死锁4.读写锁原创 2021-02-25 10:44:00 · 235 阅读 · 0 评论 -
3.7线程属性
原创 2021-02-25 10:10:09 · 122 阅读 · 0 评论 -
3.6线程取消
原创 2021-02-25 09:39:01 · 116 阅读 · 0 评论 -
3.5线程的分离
原创 2021-02-24 20:48:01 · 124 阅读 · 0 评论 -
3.4连接已终止的线程
原创 2021-02-24 20:28:18 · 168 阅读 · 0 评论 -
3.3终止线程
原创 2021-02-24 19:31:57 · 132 阅读 · 0 评论 -
3.2创建线程
原创 2021-02-24 19:28:14 · 170 阅读 · 0 评论 -
3.1线程概述
对于线程,上图中圈出的部分不同。原创 2021-02-24 18:58:22 · 162 阅读 · 0 评论 -
2.30守护进程
echo $$ 可以查看当前终端的进程号pid原创 2021-02-24 16:45:51 · 141 阅读 · 0 评论 -
2.29共享内存(2)
利用共享内存进行进程间通信的实例:write_shm.c:#include <sys/ipc.h>#include <sys/shm.h>#include <sys/types.h>#include <stdio.h>#include <string.h>int main(){ int id=shmget(100,4096,IPC_CREAT | 0664); if(id==-1) ...原创 2021-02-24 13:32:11 · 199 阅读 · 0 评论 -
2.28共享内存(1)
shmget只是创建或者取得了一个共享内存段,该共享内存段和哪个进程都没有关系,进程还要通过shmat来附上共享内存段,得到该共享内存段在该进程的虚拟地址空间中的位置指针。然后才可以进行操作。操作结束后,要调用shmdt和共享内存段进行分离,分离之后,共享内存还存在,只是这个进程不能使用,最后一个使用该共享内存段的进程要调用shmctl对共享内存段进行销毁。最后一个进程调用shmctl删除共享内存段之前要调用shmdt进行解除关联吗?#include <sys/ipc...原创 2021-02-24 12:42:54 · 172 阅读 · 0 评论 -
2.27 SIGCHLD信号
原创 2021-02-24 11:31:33 · 135 阅读 · 0 评论 -
2.26sigaction信号捕捉函数
原创 2021-02-24 10:41:36 · 126 阅读 · 0 评论 -
2.25sigprocmask函数
原创 2021-02-23 22:51:29 · 127 阅读 · 0 评论 -
2.24信号集及相关函数
原创 2021-02-23 19:46:09 · 140 阅读 · 0 评论 -
2.23signal信号捕捉函数
原创 2021-02-23 19:37:43 · 240 阅读 · 2 评论 -
2.22setitimer函数
原创 2021-02-23 16:50:25 · 189 阅读 · 0 评论 -
2.21alarm函数
原创 2021-02-23 16:45:41 · 185 阅读 · 0 评论 -
2.20 kill、raise、abort函数
#include <sys/types.h>#include <signal.h>int kill(pid_t pid,int sig); -功能:给任何的进程或者进程组pid,发送任何的信号sig -参数: -pid: >0:将信号sig发送给pid指定的进程 =0:将信号sig发送给当前的进程组 =-1:将信号发送给每一个有权限接收这个信号的进程(除了1号in...原创 2021-02-23 16:26:38 · 246 阅读 · 0 评论 -
2.19信号概述
原创 2021-02-19 10:17:48 · 184 阅读 · 0 评论 -
2.18内存映射2
原创 2021-02-19 09:44:44 · 138 阅读 · 0 评论 -
2.17内存映射
内存映射原创 2021-02-18 10:45:05 · 441 阅读 · 0 评论 -
2.16有名管道实现简单版聊天功能
先略过原创 2021-02-18 10:10:04 · 225 阅读 · 0 评论 -
2.15有名管道介绍及使用
FIFO文件原创 2021-02-16 19:27:27 · 571 阅读 · 0 评论 -
2.14管道的读写特点和管道设置为非阻塞
2.14管道的读写特点和管道设置为非阻塞原创 2021-02-16 19:26:32 · 1229 阅读 · 0 评论 -
2.13匿名管道通信案例
2.13匿名管道通信案例原创 2021-02-16 19:25:47 · 275 阅读 · 0 评论 -
2.12父子进程通过匿名管道通信
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.12父子进程通过匿名管道通信专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-16 19:24:15 · 1320 阅读 · 0 评论 -
2.11匿名管道概述
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.11匿名管道概述专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-16 19:23:01 · 138 阅读 · 0 评论 -
2.10进程间通信简介
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.10进程间通信简介专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-16 19:17:02 · 163 阅读 · 0 评论 -
2.9 waitpid函数
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.9 waitpid函数专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-12 22:39:39 · 184 阅读 · 0 评论 -
2.8wait函数
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.8wait函数专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-12 22:37:22 · 316 阅读 · 0 评论 -
2.7进程退出、孤儿进程、僵尸进程
参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》2.7进程退出、孤儿进程、僵尸进程专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG原创 2021-02-12 22:35:26 · 209 阅读 · 0 评论