以银行排队为例
- 1 同步阻塞 银行不给票,直接排队
- 2 同步非阻塞银行排队,在队伍里打电话,时不时看队伍到自己了。这里分为两个动作,排队时不时为主,打电话为辅。这样在代码里头显示为,一个死循环,不断轮询到自己没有,这个循环中还能做其他动作,就是打电话,或者说抽烟。和1不同,1只能时不时看,也就是轮询,不断的把自己怼端口监听,只做一个东西,因为他被阻塞了。
- 3 异步阻塞老实说,我觉得跟1有点像,这个例子还是银行的,这个银行升级了,会发票给你,这个小票替代你排队,到你了银行会叫你,这就是异步。但是这时候你发现被阻塞了,不能抽烟,不能出去走走,不去顺路在隔壁买鸡排吃,我的妈,这和1到底有什么分别?!老实说个人觉得没有分别,但是在程序里大概是这样显示的,不用循环了,不用一次次去端口怼着了,起个函数线程只需要等待通知,就可以接收乱七八糟的东西。嗨呀,好气啊,这样做有个卵用。有用哈,虽然线程挂起等待,但是cpu没闲着啊,该咋地还是咋地,省资源了撒(心里话:还是没卵用
- 4 异步非阻塞拿了小票排队,然后去隔壁买鸡排,在门口抽根烟,吃完鸡排发现银行还没叫我,嗨呀,好气啊,银行怎么这么辣鸡,排个队那么卵久的
作者:青云十九
链接:https://www.zhihu.com/question/19732473/answer/126044224
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。