【概念门清】同步和异步?阻塞IO和非阻塞IO?

概念

同步和异步<==>阻塞和非阻塞,概念类似。

IO:输入输出,以程序为中心,磁盘向程序中塞东西即为输入(如读取文件),程序向磁盘塞东西即为输出(如保存文件)


 

同步和异步解释

个人理解而言如下图


 

阻塞IO和非阻塞IO

理解同上,不过线程的功能更有针对性,是针对文件操作,如读取文件,写入文件等功能。

  • 阻塞IO
    • 程序一路向下执行,遇到读取文件,则程序停下来读取文件,完毕后继续往下执行;当要写入文件,还是整体停下来等待写入完毕;一直到程序执行完毕。  
  • 非阻塞IO
    • 程序一瞬间或快速执行完整个程序代码;若中间遇到读取文件,则分一条分支去读取,程序继续往下执行;遇到写入文件,还是同样的。

 

总结和比喻

同步和阻塞

  • 比喻:一个大部队前往基地,中间有人有事,整个大部队停驻来等他完成事情回归部队后,大部队才继续往前走
  • 速度:整体进程慢

异步和非阻塞

  • 比喻:一个大部队前往基地,中间有人有事(那么这个人就自己去做),大部队不等他,等他做完后回到大部队就行(也许大部队早就到了基地)
  • 速度:整体进程快速
posted @ 2020-11-21 11:53  叶荒  阅读(121)  评论(0编辑  收藏  举报