概念
同步和异步<==>阻塞和非阻塞,概念类似。
IO:输入输出,以程序为中心,磁盘向程序中塞东西即为输入(如读取文件),程序向磁盘塞东西即为输出(如保存文件)
同步和异步解释
个人理解而言如下图
阻塞IO和非阻塞IO
理解同上,不过线程的功能更有针对性,是针对文件操作,如读取文件,写入文件等功能。
- 阻塞IO
- 程序一路向下执行,遇到读取文件,则程序停下来读取文件,完毕后继续往下执行;当要写入文件,还是整体停下来等待写入完毕;一直到程序执行完毕。
- 非阻塞IO
- 程序一瞬间或快速执行完整个程序代码;若中间遇到读取文件,则分一条分支去读取,程序继续往下执行;遇到写入文件,还是同样的。
总结和比喻
同步和阻塞
- 比喻:一个大部队前往基地,中间有人有事,整个大部队停驻来等他完成事情回归部队后,大部队才继续往前走
- 速度:整体进程慢
异步和非阻塞
- 比喻:一个大部队前往基地,中间有人有事(那么这个人就自己去做),大部队不等他,等他做完后回到大部队就行(也许大部队早就到了基地)
- 速度:整体进程快速