Logo

Linux Semaphore

在 Linux 中信号量(Semaphore)可以认为是一个不可以小于零的计数器,用来在不同的进程或者线程中同步行为。...

Linux Signal

Linux 中信号有点类似与硬件中的中断,提供了一种处理异步事件的方法。应用程序并不需要特意的去配置就可以接收信号并作出默认的行为,当然应用程序也可以忽略或者注册回调函数来处理特定信号。...

FreeRTOS-Kernel 调度算法

FreeRTOS Kernel 允许多个 Task 并行,这里的 Task 有点类似于 Linux 的线程,然后 FreeRTOS Kernel 会对这些 Task 进行调度。目前 FreeRTOS Kernel 提供了三种调度算法,他们各有优劣可以根据实际情况选择对应的调度算法。...

拔掉网线后 TCP 链路会发生什么

现在有一个场景,假设机器 A 启动了一个 TCP Server,机器 B 启动了一个 TCP Client,并且 TCP Client 与 TCP Server 创建好了连接。此时将 A 的网线拔掉会出现什么情况呢?为了先得出直观的结构,可以先做一个简单的实验测试一下...

Linux I/O Multiplxing

I/O 多路复用可以复用线程的处理能力,让单个线程也可以处理大量并发请求。目前 Linux 提供了三种 I/O 多路复用方式,分别为 SELECT,POLL,EPOLL。...

C++ Copy Elision

在 C++ 中想要传入函数的参数不被复制,可以通过引用或者指针的方式传入。如果说想要返回的产生也不被复制呢?当然可以直接将返回的对象作为入参以引用或者指针的形式传入,实际上直接返回也可以不复制,在C++返回参数不被复制被称为 Copy Elision。...

Debian 环境搭建

记录一下 Debian 虚拟机环境搭建...

关闭文件描述符

Socket 文件描述符符的关闭看上去挺简单的,但是实际上还是有不少地方需要注意的。...

非杜塞 I/O

当我们谈及到 IO 多路复用的时候通常会提及到的一个概念是非杜塞IO,网上的教程中在使用IO多路复用的时候通常会先将对于的socket设置为非杜塞的,但是这样子做的原因却很少被提及。...

C/C++ 混合编程

C++ 与 C 由于基础语法以及数据结构相似,并且 C++ 还是兼容 C 的,在实际开发中经常混在一起用,虽然不像和其他语言混在一起用麻烦,但还是有一些小坑需要注意的。...