首先需要明确的是,linux有五类io模型
1.阻塞
2.非阻塞
3.io多路复用
4.事件驱动
5.异步
(ps:这里需要的点是:io多路复用和非阻塞是并列的关系哦~,不过一般来说io多路复用都是和非阻塞搭配使用的。)
最容易理解的是阻塞。一次网络io时,C端发出请求,S端收到。当C端发出一个请求,进行io时,就不能进行其他操作了,需要同步的等待结果的返回。
当使用io多路复用时,有多个C端同时发送请求,这些IO操作会被selector(epoll,kqueue)给暂时挂起,入内存队列。此时S端可以自己选择什么时候读取、处理这些io,也就是说S端可以同时hold住多个io。
Linux下串口多路复用的应用:
多路复用io 主要用于处理网络请求
IOMUX 就是指的STM32 的引脚复用。
那么串口的多路复用到底是怎么回事???
怎么实现的串口的2根线给上位机的那么多串口助手发送数据???
这个不是板子上的程序写的,这个是上位机的技术,上位机中多出来了很多的串口,板子上只是分发而已。
这个很简单,不要想复杂。 ------李永江