GitHub B站UP主:sBobHuang

持续面试,持续挖坑

首先我觉得是我自己很菜,第二我觉得这些东西目前我没有应用场景,对我来说,答出自己的感觉还是蛮困难的

结构体字节对齐规则

滑动窗口如何进行确认和差错控制,CRC校验到底是在哪里实现的

操作系统分时系统的设计

虚拟内存更深的理解

数据库的各种索引

同步\移步,阻塞\非阻塞。AIO BIO NIO究竟是怎么一回事

软件工程UML图

同步是发起请求,在线等待结果。 (你打电话给女朋友确认明天一起吃饭。)

异步是发起请求,不在线等待结果 (你发短信问女朋友明天一起吃饭。)

阻塞是收到请求,不完成不回应 (你女朋友犹豫半天才回复你没空。)

非阻塞是收到请求,立刻回应 (你女朋友马上回复我想想。)

AIO 是彻底的异步通信。
NIO 是同步非阻塞通信。
有一个经典的举例。烧开水。
假设有这么一个场景,有一排水壶(客户)在烧水。

AIO的做法是,每个水壶上装一个开关,当水开了以后会提醒对应的线程去处理。例如linux下的epoll“伪”AIO
NIO的做法是,叫一个线程不停的循环观察每一个水壶,根据每个水壶当前的状态去处理。针对于所有的语言
BIO的做法是,叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。常见的情况

posted @ 2019-08-07 08:13 暴力都不会的蒟蒻 阅读(...) 评论(...) 编辑 收藏
TOJ