應用程式是:小明
核心:小王
1 阻塞式I/O模型:
小明向小王借米煮飯,小王暫時沒有,但是小明這時候其它啥事情也不做了(例如這時候他還可以洗菜),就在哪裡等的,直到小王有了大米,然後小明把大米搬運到自己家裡,開始做飯。
2 非阻塞式I/O模型:
小明向小王借米煮飯,小王暫時沒有,但是小明這時候這時候他去洗菜了,每洗一回就去問小王米準備好了嗎,直到小王有了米,然後小明把米搬運到自己家裡,開始煮飯。
3 I/O 重複使用模式:
村莊裡面好多人煮飯沒有米了,都去向小王借米。這樣的話無論是向小王借米的人每隔一段時間問小王也好,還是在哪裡死等小王的消息也罷,借米的人都至少不會好好的做其他的事情了,
這樣大家就找一個代理人,然後大家吧狀況和這個代理人說了,讓這個代理人和小王互動。等有資料到達的時候,這個代理人就通知具體的某個人,然後這個人把米搬運到自己家裡面,開始煮飯。
4 訊號驅動模型:
小明向小王借米煮飯,小王暫時沒有,但小明這時候去洗菜,而不是在哪裡等著,或是不斷的問小王,因為小王有了大米會主動通知小明,等通知到來的時候,小明把大米搬運到自己家裡,開始做飯。
5 非同步模型:
小明向小王借大米做飯,小明向小王說完借大米的事情就去做別的事情了,等小王有了大米,並且主動把米搬運到小明的家裡,才通知小明大米到了,這時候小明開始煮飯。
同步:應用程式主動拷貝資料到使用者空間。
非同步:核心負責拷貝資料到使用者空間,這個過程中應用程式還在做自己的事情。
阻塞,非阻塞,I/O復用,訊號驅動,都是同步。最後的異步才是真正的異步。
以上是5中oi模型怎麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!