以銀行排隊為例
- 1 同步阻塞 銀行不給票虎谢,直接排隊
- 2 同步非阻塞銀行排隊盟榴,在隊伍里打電話,時不時看隊伍到自己了婴噩。這里分為兩個動作擎场,排隊時不時為主,打電話為輔讳推。這樣在代碼里頭顯示為顶籽,一個死循環(huán),不斷輪詢到自己沒有银觅,這個循環(huán)中還能做其他動作,就是打電話坏为,或者說抽煙究驴。和1不同,1只能時不時看匀伏,也就是輪詢洒忧,不斷的把自己懟端口監(jiān)聽,只做一個東西够颠,因為他被阻塞了熙侍。
- 3 異步阻塞老實說,我覺得跟1有點像履磨,這個例子還是銀行的蛉抓,這個銀行升級了,會發(fā)票給你剃诅,這個小票替代你排隊巷送,到你了銀行會叫你,這就是異步矛辕。但是這時候你發(fā)現(xiàn)被阻塞了笑跛,不能抽煙,不能出去走走聊品,不去順路在隔壁買雞排吃飞蹂,我的媽,這和1到底有什么分別翻屈?陈哑!老實說個人覺得沒有分別,但是在程序里大概是這樣顯示的,不用循環(huán)了芥颈,不用一次次去端口懟著了惠勒,起個函數(shù)線程只需要等待通知,就可以接收亂七八糟的東西爬坑。嗨呀纠屋,好氣啊,這樣做有個卵用盾计。有用哈售担,雖然線程掛起等待,但是cpu沒閑著啊署辉,該咋地還是咋地族铆,省資源了撒(心里話:還是沒卵用
- 4 異步非阻塞拿了小票排隊,然后去隔壁買雞排哭尝,在門口抽根煙哥攘,吃完雞排發(fā)現(xiàn)銀行還沒叫我,嗨呀材鹦,好氣啊逝淹,銀行怎么這么辣雞,排個隊那么卵久的
作者:青云十九
鏈接:https://www.zhihu.com/question/19732473/answer/126044224
來源:知乎
著作權歸作者所有桶唐。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權栅葡,非商業(yè)轉(zhuǎn)載請注明出處。