须要先对 IO
的概念有必定的认识:php
本地文件IO
;网络IO
;以前反正一直搞不清楚同步和阻塞, 异步和非阻塞的概念, 总感受同步就是阻塞, 异步就是非阻塞的, 老是搞得晕乎乎的, 因而就从新查了些资料进行了梳理, 若有不对欢迎你们指正;前端
同步: 同步体如今, 在等待一件事情的处理结果时, 对方是否提供通知服务, 若是对方不提供通知服务, 则为 同步;ajax
异步: 异步体如今, 在等待一件事情的处理结果时, 对方是否提供通知服务, 若是对方提供通知服务, 则为 异步;编程
阻塞: 阻塞体如今, 在等待一件事情的处理结果时, 你是否还去干点其余的事情, 若是不去, 则为 阻塞;微信
非阻塞: 非阻塞体如今, 在等待一件事情的处理结果时, 你是否还去干点其余的事情, 若是去了, 则为 非阻塞;网络
此处找了一位朋友写的例子, 感受很不错
同步阻塞: 你去 甜在心馒头 店买太极馒头, 阿梅说:"暂时没, 正在蒸呢, 你本身看着点儿!", 因而你就站在旁边只等馒头, 此时的你, 是阻塞的, 也是同步的;异步
同步非阻塞: 你去甜在心馒头店买太极馒头, 阿梅说:"暂时没, 正在蒸呢, 你本身看着点儿!", 因而你就站在旁边发发微信, 而后问一句:"好了没?", 而后玩玩QQ游戏, 而后再问一句:"好了没?", 此时的你, 是非阻塞的, 不过却仍是同步的;socket
异步阻塞: 你去甜在心馒头店买太极馒头, 阿梅说:"暂时没, 正在蒸呢, 蒸好了我打电话告诉你!", 但你依然站在旁边只等馒头, 此时的你, 是阻塞的, 是异步的;code
异步非阻塞: 你去甜在心馒头店买太极馒头, 阿梅说:"暂时没, 正在蒸呢, 蒸好了我打电话告诉你!", 因而你就走了, 去买了双新球鞋, 看了看武馆, 总之, 今后再也不过问馒头的事情, 一心只等阿梅电话, 此时的你, 是非阻塞的, 是异步的server