同步异步、阻塞非阻塞
2017-12-07 本文已影响35人
万丰路甲一号
标签:同步异步、阻塞非阻塞
这个问题也许困扰我们了,今天就举个列子好好说道说道。
同步:就是自己主动查询,并且得到返回结果;‘
异步:自己被动的等待结果
阻塞:在结果返回之前,程序一直在等待(被挂起)
非阻塞:在结果返回之前,程序不等待不挂起,该干别的干别的。
举例:
1.老张烧了一壶水(普通的水壶,开了之后不会主动提醒的),假如老张一直在水壶旁边等着,直到水开-----这就是同步阻塞
2.当然老张知道水也不是一时半会就能开的,于是乎,他继续到客厅继续追着他喜爱的《人民的名义》,当然正事不能忘,于是,他还是要时不时回来看看水开了没有---这就是同步非阻塞(一边烧水一边看电视,但还是得自己主动去看水壶)
3.有一次老张看电视剧看得入迷,水开了很久才去看的,这样子老张自责了很长时间,但是老张的儿子比较聪明和孝顺,第二天就给他换了一个水开会呜呜直叫的水壶,这下子老张可轻松多了,只用专心看他的《人民的名义》了,只需要等待水壶叫唤,直接去关火就行了----这就是异步非阻塞(等待通知,还可以同时看着电视)
4.当然,我们不会相信老张此时还会在这么好的热水壶之前,非得守着水开(异步阻塞)
其实同步异步是对水壶而言,看它可不可以主动提醒,而同步面对的情况就是必须程序主动查询才能返回结果(老张必须主动去看才能知道水开);
阻塞非阻塞就是同时干别的事情没有。