卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

回應(yīng)與響應(yīng)的區(qū)別 事件驅(qū)動(dòng)和請(qǐng)求響應(yīng)模式有什么區(qū)別?

事件驅(qū)動(dòng)和請(qǐng)求響應(yīng)模式有什么區(qū)別?這兩樣?xùn)|西的層次不同,不適合比較。操作系統(tǒng)對(duì)設(shè)備進(jìn)行抽象后,將設(shè)備分為塊設(shè)備和流設(shè)備,通過(guò)中斷處理相應(yīng)的IO事件。為了降低上下文切換的成本,一般操作系統(tǒng)都會(huì)嘗試將IO

事件驅(qū)動(dòng)和請(qǐng)求響應(yīng)模式有什么區(qū)別?

這兩樣?xùn)|西的層次不同,不適合比較。操作系統(tǒng)對(duì)設(shè)備進(jìn)行抽象后,將設(shè)備分為塊設(shè)備和流設(shè)備,通過(guò)中斷處理相應(yīng)的IO事件。為了降低上下文切換的成本,一般操作系統(tǒng)都會(huì)嘗試將IO事件綁定到CPU上進(jìn)行處理。典型的事件處理框架,如poll、epoll等,大多在內(nèi)核中進(jìn)行優(yōu)化,實(shí)現(xiàn)無(wú)阻塞,充分利用DMA,減少內(nèi)存拷貝,提高效率。為用戶提供同步或異步調(diào)用接口。進(jìn)一步優(yōu)化Epoll,為異步調(diào)用提供水平觸發(fā)器或邊緣觸發(fā)器支持,減少用戶調(diào)用次數(shù)。這種編程模式主要基于事件啟動(dòng)模型。

許多流協(xié)議,如TCP、HTTP等,它們的編解碼器實(shí)際上是基于非阻塞異步事件驅(qū)動(dòng)的。與HTTP協(xié)議一樣,它本質(zhì)上是一個(gè)請(qǐng)求-響應(yīng)協(xié)議。解析請(qǐng)求時(shí),上層應(yīng)用程序需要對(duì)其進(jìn)行處理。此時(shí),框架需要考慮是向用戶提供同步回調(diào)接口還是異步回調(diào)接口。這與用戶的線程管理策略有很大關(guān)系。如果提供了同步回調(diào),則用戶可以通過(guò)單個(gè)線程處理請(qǐng)求,并通過(guò)調(diào)用阻塞IO接口來(lái)操作數(shù)據(jù)。但這種處理方法效率低,擴(kuò)展性差。半同步和半異步通信框架就是指這種類型。建立鏈接,異步解析底層協(xié)議,然后將其轉(zhuǎn)換為與用戶的同步回調(diào)接口。大多數(shù)HTTP服務(wù)器都這樣做。

另一種方式稱為主動(dòng)完全異步模式。用戶必須使用非阻塞系統(tǒng)調(diào)用,任何阻塞調(diào)用都將是災(zāi)難。用戶必須處理數(shù)據(jù)是否足以進(jìn)行下一個(gè)協(xié)議解析或請(qǐng)求處理。當(dāng)數(shù)據(jù)不足時(shí),書簽處于當(dāng)前處理狀態(tài),并切換到下一個(gè)帶有數(shù)據(jù)事件的請(qǐng)求進(jìn)行處理。這個(gè)處理線程可以處理多個(gè)甚至所有的請(qǐng)求,基本上沒(méi)有線程切換或掛起。少數(shù)需要非常高性能、采用主動(dòng)全異步模式的HTTP服務(wù)器對(duì)應(yīng)用端開(kāi)發(fā)異步應(yīng)用也有很高的要求。