相關(guān)概念
什么是進(jìn)程、線程、協(xié)程
什么是多進(jìn)程、多線程
同步阻塞模型
異步非阻塞模型
PHP并發(fā)編程實(shí)踐

進(jìn)程是一個(gè)“執(zhí)行中的程序”

運(yùn)行 就緒 阻塞

是小于等于處理器的數(shù)目,因?yàn)橐粋€(gè)處理器只能處理一個(gè)。。

萬事俱備 只欠東風(fēng)。

手機(jī)可以先把一個(gè)app放到后臺(tái),不看了。。。這就是阻塞,因?yàn)樵诘却龁拘选?/p>




游泳的準(zhǔn)備下水

替補(bǔ)準(zhǔn)備上場

在場上,但是累了,跑不動(dòng)了。



是進(jìn)程的一部分。

線程相當(dāng)于是進(jìn)程的一個(gè)寄生蟲。



一個(gè)程序就是一個(gè)進(jìn)程,一個(gè)進(jìn)程可能有多個(gè)線程。






有點(diǎn)類似于輕量級(jí)的線程。
程序員調(diào)試的時(shí)候,可以用一個(gè)程序來調(diào)用另一個(gè)程序,這個(gè)就是協(xié)程。
協(xié)程的調(diào)用,完全是由用戶來控制的。
而線程是由操作系統(tǒng)來控制的。




邊玩游戲,邊聽歌。
邊玩王者榮耀,邊聽歌。
多開一個(gè)進(jìn)程,多分配一分資源,進(jìn)程間通訊不方便。


多進(jìn)程單線程:多個(gè)人每個(gè)人在自己的桌子上吃菜。







linux可以在一個(gè)進(jìn)程里面,維持1024個(gè)鏈接。
只有一個(gè)會(huì)命中。。。100w里面只會(huì)有一個(gè),
無需調(diào)用,無需輪詢。







不需要做reactor擴(kuò)展。




比如說數(shù)據(jù)寫入需要50毫秒,郵件發(fā)送需要50毫秒,短信發(fā)送50毫秒,,總共105毫秒。


先告訴用戶注冊(cè)成功,然后在用離線程序去調(diào)用數(shù)據(jù),再發(fā)送郵件和短信。

訂單和庫存 解耦。。

先不管庫存。。


假如秒殺只允許10個(gè)人,那么我的隊(duì)列只允許10個(gè)人。



寫入隊(duì)列之后,是立馬返回的,用戶是沒有感知的。


