并发/并行,同步/异步,阻塞/非阻塞的区别

并发/并行:关注点是CPU在执行多个任务时的方式。并发表示同一时间段里面有多个进程在同一CPU执行,在极短的时间里面互相切换使人不会发觉。并行只会出现在多个CPU的情况中,表示同一时刻之内能有多个进程在执行。
举个栗子:在开车的时候电话来了,你必须停下车才能接电话,接完电话才能继续开车,这就是并发;如果你是一边开车一边接电话的话,就是并行。

同步/异步:关注的是请求与响应的通讯机制,描述的是被调用方。意思就是发出请求后,该请求是否等待响应结果再返回,同步就是没有得到结果前不会返回,返回即得到请求的结果。异步就是得到发出请求后就直接返回,也即是可能不会立即得到请求结果,服务得到结果后再通过通知或回调函数等方法通知调用者。
举个栗子:你去星爸爸买咖啡,付了钱就在前台等到咖啡做好才走,就是同步;付了钱不在前台等去找个座位坐下,服务员再给你送来咖啡,就是异步。

阻塞/非阻塞:关注的是请求在等待结果时的状态,描述的是调用方。阻塞就是在等待结果的时候,当前线程会被挂起,在得到结果之后返回;非阻塞则是没有得到结果之也不会阻塞当前线程。
举个栗子:阻塞的情况就是你在星爸爸等咖啡的时候什么都不能做,只能“挂起”;非阻塞就是你在等咖啡的时候可以玩着手机,过一会就检查下咖啡好了没。

posted @ 2019-03-17 21:18  wj-gu  阅读(354)  评论(0编辑  收藏  举报