轮询机制
- 轮询,英文polling。
- 轮询是按照某种算法进行顺序触发,轮询时会保存当前执行后的索引,以便于下次执行时可以拿到开始索引位置,以达到负载均衡的目的。(表述不是太明确,望指正)
- 轮流则是常规意义上的有顺序排列,而轮询则是按照某种算法进行排列。
- 百度解释:轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输入输出”(Programmed I/O)。轮询法的概念是:由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
案例供思考
1、 一艘船漏水了,上面20个人,但是只有一个救生艇可供3人乘坐。于是20个人凑成一圈,每次数到第七个,就将他踢下去。请问最后哪三个人获得乘坐资格?(轮询规则是随机选择一个人往下数7)
例如:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],随机选择5这个索引位置,往下数7。输出结果是[2,6,7],其中定义的间隔7则可以理解为是一种简单的轮询规则。
单线程I/O多路复用
同步和异步
描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。
阻塞和非阻塞
描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才返回到用户空间;而非阻塞是指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成
IO多路复用
(70条消息) 单线程I/O多路复用_Anas_南的博客-CSDN博客_单线程多路复用
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~