摘要:
目录FD_CLOEXEC标记FD_CLOEXEC标记的设置 FD_CLOEXEC标记 FD_CLOEXEC:这是个文件描述符标记,其值为1。 #define FD_CLOEXEC 1 这个标记的含义是:如果对文件描述符设置了FD_CLOEXEC标记,则在使用fork创建子进程后,父进程中打开的文件描 阅读全文
2024年5月11日
2024年5月10日
摘要:
目录Linux系统多线程编程基础Windows多线程编程基础C++多线程编程基础实例1.子线程打开一个文件,将系统当前时间写入。主线程读取文件中的时间并显示在屏幕上2.实现多生产者多消费者模型 Linux系统多线程编程基础 Linux系统下多线程编程可以采用glibc库中的POSIX库,glibc是 阅读全文
摘要:
目录线程基础1.线程概述2.线程的创建3.线程的退出4.线程的回收5.线程分离6.其他线程函数线程同步1.线程同步的概念2.互斥锁3.读写锁4.条件变量5.信号量(信号灯)线程局部存储死锁 在Linux下使用多线程编程,主要是使用glibc库中的接口 线程基础 1.线程概述 线程是轻量级的进程(称作 阅读全文
2024年5月9日
摘要:
目录Libevent简介编译与安装Libevent中的事件事件处理框架event_base及事件循环支持IO多路复用机制 版本:release-1.4.13-stable,环境:centos64位 Libevent简介 同libev,libuv一样,三者都是异步事件库。作为库的使用者只需要注册事件的 阅读全文
摘要:
目录事件处理框架event_base事件处理主循环 事件处理框架event_base 事件处理框架对应于Reactor模式中的Reactor管理器,提供了事件注册、注销等接口。 事件处理框架对应event_base结构体,这也是Libevent的核心。 struct event_base { // 阅读全文
摘要:
Libevent中的event结构体对应于Reactor模式中的事件处理器,其中提供了函数接口,供Reactor管理器在事件发生时调用。 目录1.event结构体2.信号事件3.定时器事件4.激活事件的统一处理 1.event结构体 事件的类型:主要分为IO读写、信号、超时事件 #define EV 阅读全文
摘要:
event-internal.h中定义了eventop结构体,每一种IO多路复用机制都会实现eventop结构体中的五个方法。 struct eventop { const char* name; void* (*init)(struct event_base*); int (*add)(void* 阅读全文
2024年5月7日
摘要:
目录阻塞、非阻塞同步、异步五种网络IO模型Reactor1.简介2.组件3.实现Proactor2.组件Actor 文中的网络线程:执行网络io所在的线程 阻塞、非阻塞 阻塞:典型的一次IO一般分为两个阶段:数据准备以及数据拷贝(数据在内核空间与用户空间之间的往返)。在数据准备阶段,调用IO方法的线 阅读全文
2024年5月6日
摘要:
目录将套接字设置为非阻塞的1.使用socket函数创建的套接字,将其设置为非阻塞的2.服务端开发中,将用于通信的套接字设置为非阻塞的实现字节序转换函数1.字节序2.字节序的判断3.字节序转换非阻塞的connect常见的socket选项bind函数listen函数服务端如何保证在关闭连接前将数据包发送 阅读全文