摘要: ###线程函数 以下函数包含在头文件 `pthread.h` 中 ####线程ID 每一个线程都有一个唯一的线程ID,ID类型为pthread_t,是一个无符号长整形数,这个函数用于返回线程ID ```cpp pthread_t pthread_self(void); ``` + 返回值:当前线程I 阅读全文
posted @ 2023-08-27 22:22 悲伤鳄鱼吃面包 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 前置知识:[多线程](https://www.cnblogs.com/beishangeyu/p/17659675.html "多线程") ##什么是线程池 一般来说,我们使用一个线程的时候就去创建一个线程,当执行完任务后就将线程销毁。如果并发的线程很多,频繁的创建和销毁线程会降低效率。 为了实现线 阅读全文
posted @ 2023-08-26 23:09 悲伤鳄鱼吃面包 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Linux下的实现方式 socket选项SO_RECVTIMEO和SO_SNDTIMEO SIGALRM信号 信号相关笔记:Linux之信号 I/O复用系统调用的超时参数 定时器及其容器 定时器 封装了以下内容 超时时间 回调函数:就是每次时间到了要干嘛 连接资源:包括客户端socket地址、客户端 阅读全文
posted @ 2023-08-20 03:28 悲伤鳄鱼吃面包 阅读(74) 评论(0) 推荐(0) 编辑
摘要: ###信号集类型sigset_t 是描述信号的集合的结构体 ####定义 ```C++ typedef struct { unsigned long sig[_NSIG_WORDS]; }sigset_t ``` ####相关函数 ```C++ #include sigemptyset(sigset 阅读全文
posted @ 2023-08-15 17:48 悲伤鳄鱼吃面包 阅读(13) 评论(0) 推荐(0) 编辑
摘要: #iovec ##基本介绍 包含在头文件``#include ``中的一个结构体 其定义如下 ``` struct iovec { void* iov_base; //指向数据的地址 size_t iov_len; //数据的长度 }; ``` 其实就是一个指向一块内存的指针,同时携带了数据长度而已 阅读全文
posted @ 2023-08-11 23:46 悲伤鳄鱼吃面包 阅读(93) 评论(0) 推荐(0) 编辑
摘要: #报文结构 ##请求报文 ![image](https://img2023.cnblogs.com/blog/3198955/202308/3198955-20230812020852141-1362160099.png) * **请求行** 用来说明请求类型,要访问的资源以及所使用的HTTP版本。 阅读全文
posted @ 2023-08-09 20:41 悲伤鳄鱼吃面包 阅读(19) 评论(0) 推荐(0) 编辑
摘要: #Socket 套接字。类似于一个结构体,内部封装了ip地址、协议、端口(唯一标识进程) ##阻塞与非阻塞 套接字默认阻塞,即当我们使用某些函数要对缓冲区进行I/O操作时,若缓冲区无法操作,那么会卡在这里直到缓冲区中有空间操作。 对非阻塞套接字,如果行就执行操作并返回成功值,不行就返回错误值。 我们 阅读全文
posted @ 2023-08-08 20:26 悲伤鳄鱼吃面包 阅读(24) 评论(0) 推荐(0) 编辑
摘要: ##操作函数 ```cpp int epoll_create(int size); ``` 参数``size``可以是任何一个大于0的数字 创建一个epoll实例,返回这个实例的文件描述符 ```cpp int epoll_ctl(int epfd, int op, int fd, struct e 阅读全文
posted @ 2023-08-05 22:15 悲伤鳄鱼吃面包 阅读(29) 评论(0) 推荐(0) 编辑