同步/异步 阻塞/非阻塞 .

  • 时间:
  • 浏览:0
  • 来源:uu快三_uu快三直播_uu快三官网开奖平台

可见,同步/异步与阻塞/非阻塞是两组不同的概念,它们可不还能否 共存组合,也可不还能否 参见这里:

很多人又会问了,异步操作不用是阻塞的吧?机会通知了有消息可不还能否 避免了就一定不会阻塞的了吧?

请注意理解消息通知和避免消息这有有2个多多 概念,这是理解这名 问题报告 的关键所在.还是回到上面的例子,轮到你办理业务这名 就这麼 你关注的消息,而去办理业务而且 对这名 消息的避免,两者是有区别的.而在真实的IO操作时,所关注的消息而且 该fd是是不是可读写,而对消息的避免而且 对这名 fd进行读写.同步/异步仅仅关注的是怎样通知消息,它们对怎样避免消息从不关心,好比说,银行的人仅仅通知你轮到你办理业务了,而怎样办理业务大伙 是我没了乎 的.

同步和异步:上面提到过,同步和异步仅仅是关于所关注的消息怎样通知的机制,而不会避免消息的机制.也而且 说,同步的情况报告下,是由避免消息者我本人去等待图片消息是是不是被触发,而异步的情况报告下是由触发机制来通知避免消息者,很多在异步机制中,避免消息者和触发机制之间就还能否 有有2个多多 连接的桥梁,在大伙 举的例子中这名 桥梁而且 小纸条上面的号码,而在select/poll等IO多路复用机制中而且 fd,当消息被触发时,触发机制通过fd找到避免该fd的避免函数.

这两组概念常常让他迷惑,机会它们不会涉及到IO避免,共同又有着或多或少相类似于 的地方.

首先来解释同步和异步的概念,这有有2个多多 概念与消息的通知机制有关.

----------------------------------------- 分割线 ------------------------------------------------------

而很多人难能可贵把同步和阻塞混淆,帮我也是机会这麼 区分这有有2个多多 概念,比如阻塞的read/write操作中,我我随便说说是把消息通知和避免消息结合在了共同,在这里所关注的消息而且 fd是是不是可读/写,而避免消息则是对fd读/写.当大伙 将这名 fd设置为非阻塞的如果 ,read/write操作就不用等待图片图片消息通知这里阻塞,机会fd不可读/写则操作立即返回.

很多人会把同步和阻塞混淆,帮我是机会很多如果 同步操作会以阻塞的形式表现出来,比如很多人会写阻塞的read/write操作,而且 别忘了可不还能否 对fd设置O_NONBLOCK标志位,有有2个多多多 就可不还能否 将同步操作变成非阻塞的了;同样的,很多人也会把异步和非阻塞混淆,机会异步操作一般不会会在真正的IO操作处被阻塞,比如机会用select函数,当select返回可读时再去read一般不会会被阻塞,就好比当你的号码排到时一般不会在你如果 机会这麼 人了,很多你再去柜台办理业务就不用被阻塞.

其次再来解释一下阻塞和非阻塞,这有有2个多多 概念与程序运行等待图片消息(无所谓同步机会异步)时的情况报告有关.

举个例子,比如我去银行办理业务,机会选则排队等待图片图片,也机会取有有2个多多 小纸条上面有我的号码,等到排到我这名 号时由柜台的人通知我轮到我去办理业务了.