美文网首页程序员
同步、异步、阻塞、非阻塞

同步、异步、阻塞、非阻塞

作者: Sorkin | 来源:发表于2017-10-28 12:20 被阅读0次

编程是为了让计算机完成任务,并得到我们所要的结果。
其中四个相关的非常重要的概念:同步、异步、阻塞、非阻塞。
为了更好的理解这四个概念,用老张喝茶烧水来说明:

老张爱喝茶,要烧开水。
出场人物:老张,水壶两把(普通水壶,简称水壶;水烧开会响的水壶,简称响水壶)。
1.老张把水壶放到火上,在旁边等水开。(同步阻塞)
老张觉得自己有点傻
2.老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
老张还是觉得自己有点傻
于是想办法,买了把水烧开会响笛的那种水壶。水开之后,能大声发出嘟嘟嘟~~~的噪音。
3.老张把响水壶放到火上,在旁边等水开。(异步阻塞)
老张觉得这样傻等意义不大
4.老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)
老张觉得自己聪明了

当然,选择什么方式更合理,还是要看更多的条件:

  • 如果CPU慢,任务时间长,(火小,水开要的时间长),那么采用异步非阻塞的老张才是聪明的;
  • 如果CPU慢,任务时间短,(假设只烧开一滴水),那么采用同步阻塞的老张才是聪明的;
  • 如果CPU变快了,原来任务时间长的事情,现在任务时间很短,(假设火力变强,现在烧一壶水的时间跟原来烧一滴水的时间一样了),那么也应该采用同步阻塞
  • 如果CPU变快了,但是任务也加大了,任务时间比原来更长了,(假设火力变强,现在要烧开大海的水),那么只能用异步非阻塞。(否则等到死都还没有结果)

虽然现在我们的CPU变快了,但是我们的任务变得更难,因为我们正处在全球化、数字化的新时代。
如果CPU是数量级增长,那么任务就是几何级增长。

相关文章

  • 谈论:同步异步阻塞非阻塞.md

    同步/异步:关注的方式(是否主动) 阻塞/非阻塞: 同步阻塞BIO: 同步非阻塞NIO: 异步非阻塞: 异步阻塞:

  • UNIX 的5种IO模型介绍

    IO模型同步、异步、阻塞、非阻塞socket阻塞与非阻塞,同步与异步 同步和异步 同步/异步主要针对C端-同步就像...

  • BIO NIO AIO

    BIO:同步阻塞IONIO:同步非阻塞IOAIO:异步非阻塞IO先弄清楚同步、异步,阻塞、非阻塞概念。 io操作分...

  • 阻塞非阻塞 同步异步 IO模型及其应用 NIO实现原理

    1.同步异步概念 2.阻塞非阻塞概念 3.常见I/O模型:同步阻塞IO,同步非阻塞IO,异步阻塞IO,异步非阻塞I...

  • IO模型

    原文参考链接 四种状态 同步 异步 阻塞 非阻塞 IO分类 同步阻塞IO 同步非阻塞IO 异步非阻塞IO注意: 没...

  • 阻塞,非阻塞,同步,异步

    阻塞,非阻塞,同步,异步

  • 同步、异步、阻塞、非阻塞,这下明白了

    同步阻塞,同步非阻塞,异步阻塞,异步非阻塞... 晕! 头! 转! 向! 对于小白来说,理解这些概念太难了。搜索这...

  • I/O模型

    一般来说I/O模型可以分为:同步阻塞,同步非阻塞,异步阻塞,异步非阻塞IO 同步阻塞IO:在此种方式下,用户进程在...

  • 并发、并行、同步、异步、阻塞、非阻塞

    并发 并行 同步 异步 阻塞 非阻塞

  • Java IO

    Before IO 分为:同步、异步阻塞、非阻塞 同步和异步是目的,阻塞和非阻塞是实现方式。 一个IO操作其实分成...

网友评论

    本文标题:同步、异步、阻塞、非阻塞

    本文链接:https://www.haomeiwen.com/subject/rgajpxtx.html