IO多路转接(复用)之epoll
1. 概述 {#1-概述} ============= epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。IO多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。epoll是select和poll的升级版,相较于这两个前辈,epoll改...
1. 概述 {#1-概述} ============= epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。IO多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。epoll是select和poll的升级版,相较于这两个前辈,epoll改...
udp是一个面向无连接的,不安全的,报式传输层协议,udp的通信过程默认也是阻塞的。 * `UDP通信不需要建立连接` ,因此不需要进行connect()操作 * `UDP通信过程中,每次都需要指定数据接收端的IP和端口`,和发快递差不多 * `UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息` * `UDP对接收到的数据报不回复确认信息,发送...
1. 广播的特点 {#1-广播的特点} =================== 广播的UDP的特性之一,`通过广播可以向子网中多台计算机发送消息,并且子网中所有的计算机都可以接收到发送方发送的消息`,每个广播消息都包含一个特殊的IP地址,这个IP中子网内主机标志部分的二进制全部为1 (即点分十进制IP的最后一部分是255)。点分十进制的IP地址每一部分是1字节,最大值为255...
1. 组播的特点 {#1-组播的特点} =================== 组播也可以称之为多播这也是UDP的特性之一。`组播是主机间一对多的通讯模式,是一种允许一个或多个组播源发送同一报文到多个接收者的技术。`组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这...
本文中关于线程池实现和编写步骤相关细节,请观看视频 [手把手教你撸一个线程池 - C语言版](https://www.bilibili.com/video/BV1jV411J795 "手把手教你撸一个线程池 - C语言版"),这里把相关的代码贴出来,以供参考。 1. 线程池原理 {#1-线程池原理} =================== 我们使用线程的...
在上一个章节中为大家详细讲解了栈的特点和实现,关于栈的现实应用有很多,下面再来给说几个比较常见的案例:`括号匹配问题`、`中缀表达式转后缀表达式`、`后缀表达式的计算`。 1. 括号匹配问题 {#1-括号匹配问题} ===================== > 括号在使用的时候都是成对出现的,分为左右两部分。很多时候我们都需要验证给定的字符串中的括号是否正确匹配,通...
1. 队列 {#1-队列} ============= 1.1 队列的由来 {#1-1-队列的由来} ---------------------- 关于常用的受限制的线性表除了`栈`还有`队列`。队列与我们的日常生活息息相关,无时无刻都能感受到队列的存在: 1. 早晨起床排队上厕所、洗漱 2. 排队坐地铁、公交上下班,开车也需要排队通过交通路口 3. 排队买早餐,排队在收...
1. 用两个栈实现一个队列 {#1-用两个栈实现一个队列} ============================= 根据栈的特性,通过一个栈来实现一个队列的行为是做不到的,所以可以再加一个。用两个栈实现一个队列,可以利用栈的后进先出(LIFO)性质,将栈的顺序反转,从而实现队列的先进先出(FIFO)行为。 具体实现方法如下: 1. **定义两个栈**: * `...
1. 串 {#1-串} =========== `"天行健,君子一自强不息;地势坤,君子以厚德载物"`这是《易经》中的原文,对于普通人而言这就是两句话,对于程序员来说这就是一个数据块,是多个相同类型的字符的集合,在数据结构中将其称之为`串`。 串(String)是由零个或多个字符组成的有限序列,又名叫字符串。一般记作 s="a~1~a~2~a~...
1. 二分搜索概述 {#1-二分搜索概述} --------------------- **二分搜索** (英语:binary search),也称**折半搜索** (英语:half-interval search)、**对数搜索**(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。 二分搜索是一种高效的查找算法,适用于在已排序的...