版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
網(wǎng)絡編程技術本講要點:1.完成端口模型的概念2.完成端口模型的相關函數(shù)3.完成端口模型的編程框架5.2.4完成端口模型0102完成端口模型的概念完成端口模型的相關函數(shù)
目錄/Contents03完成端口模型的編程框架重疊I/0模型無需等待操作條件就緒,操作系統(tǒng)會直接把系統(tǒng)緩存中準備好的數(shù)據(jù)拷貝到用戶緩存優(yōu)點存在問題大量客戶訪問時,為每個客戶創(chuàng)建一個線程會導致線程數(shù)過多、切換頻繁,影響性能。1.完成端口模型的概念待處理待處理待處理空閑來,時間片給你處理處理空閑處理1.完成端口模型的概念完成端口的英文全稱是Input/OutputCompletionPort,簡稱為IOCP事件選擇模型select模型重疊I/O模型完成端口模型一種應用程序使用線程池處理異步I/O請求的機制完成端口模型
系統(tǒng)在網(wǎng)絡I/O操作“完成”之后再通知應用程序已完成I/O操作事件的隊列出口1.完成端口模型的概念通知隊列先進后出WSARecv、WSASendAcceptEx都投出去完成端口應用程序操作系統(tǒng)異步:繼續(xù)做其他事操作系統(tǒng)等待數(shù)據(jù)分別類處理函數(shù)調用準備好數(shù)據(jù)有無結果立即返回將數(shù)據(jù)復制粘貼進用戶空間操作完成將通知放進隊列從隊列取通知系統(tǒng)將通知裝進通知隊列FD_ACCEPTFD_READFD_WRITEFD_CLOSE...線程隊列先進后出線程8線程7線程6線程5線程4線程3線程2線程1一根線程處理一個通知處理完沒了線程處理完通知再次回到線程隊列1.完成端口模型的概念線程池中的線程數(shù)量多少合適?理論上,最優(yōu)的線程數(shù)和CPU核數(shù)保持一致。1.完成端口模型的概念0102完成端口模型的概念完成端口模型的相關函數(shù)
目錄/Contents03完成端口模型的編程框架完成端口在操作系統(tǒng)中用一個內核對象表示。HANDLEWINAPICreateIoCompletionPort(__inHANDLEFileHandle,__in_optHANDLEExistingCompletionPort,__inULONG_PTRCompletionKey,__inDWORDNumberOfConcurrentThreads);創(chuàng)建完成端口將SOCKET與端口綁定2.完成端口模型的相關函數(shù)INVALID_HANDLE_VALUENULL允許此端口上最多同時運行的線程數(shù)量,一般設置為零,表示自動獲取CPU核數(shù)。HANDLEWINAPICreateIoCompletionPort(__inHANDLEFileHandle,__in_optHANDLEExistingCompletionPort,__inULONG_PTRCompletionKey,__inDWORDNumberOfConcurrentThreads);2.完成端口模型的相關函數(shù)與關注事件的套接字相關的鍵創(chuàng)建完成端口將SOCKET與端口綁定要綁定的套接字已創(chuàng)建的完成端口對象句柄完成端口在操作系統(tǒng)中用一個內核對象表示。2.完成端口模型的相關函數(shù)I/O操作請求投遞函數(shù)AcceptEx()WSARecv()WSASend()2.完成端口模型的相關函數(shù)通知隊列操作系統(tǒng)應用程序投遞I/O完成通知I/O完成投遞I/O完成通知I/O完成.........投遞I/O完成通知I/O完成CreateThread()CreateThread().........CreateThread()HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,SIZE_TdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,__drv_aliasesMemLPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);I/O完成通知.........I/O完成通知I/O完成通知2.完成端口模型的相關函數(shù)通知隊列操作系統(tǒng)應用程序投遞I/O完成通知I/O完成投遞I/O完成通知I/O完成.........投遞I/O完成通知I/O完成I/O已完成套接字CreateThread()I/O完成通知.........GetQueuedCompletionStatus()BOOLGetQueuedCompletionStatus(HANDLECompletionPort,LPDWORDlpNumberOfBytesTransferred,PULONG_PTRlpCompletionKey,LPOVERLAPPED*lpOverlapped,DWORDdwMilliseconds);0102完成端口模型的概念完成端口模型的相關函數(shù)
目錄/Contents03完成端口模型的編程框架3.完成端口模型的編程框架開始創(chuàng)建套接字WSASocket()綁定地址與端口號bind()創(chuàng)建完成端口CreateIoCompletionPort()將套接字與完成端口綁定CreateIoCompletionPort()開始監(jiān)聽listen()創(chuàng)建線程CreateThread
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山東濟寧市東方圣地人力資源開發(fā)有限公司招聘輔助服務人員7人參考筆試題庫附答案解析
- 音樂節(jié)目比賽策劃方案
- 2025年南陽唐河縣屬國有企業(yè)招聘工作人員13名模擬筆試試題及答案解析
- 2025湖北咸寧市婦幼保健院人才引進7人筆試考試備考題庫及答案解析
- 2025湖南邵陽市綏寧縣政務服務中心招聘見習大學生崗位工作人員1人模擬筆試試題及答案解析
- 深度解析(2026)《GBT 26043-2010鋅及鋅合金取樣方法》
- 深度解析(2026)《GBT 25903.2-2010信息技術 通 用多八位編碼字符集 錫伯文、滿文名義字符、顯現(xiàn)字符與合體字 16點陣字型 第2部分:正黑體》
- 深度解析(2026)《GBT 25929-2010紅外線氣體分析器 技術條件》
- 深度解析(2026)《GBT 25797-2010紡織平網(wǎng)印花制版單液型感光乳液》(2026年)深度解析
- 深度解析(2026)《GBT 25735-2010飼料添加劑 L-色氨酸》(2026年)深度解析
- 上海財經(jīng)大學2026年輔導員及其他非教學科研崗位人員招聘備考題庫帶答案詳解
- 2026湖北恩施州建始縣教育局所屬事業(yè)單位專項招聘高中教師28人備考筆試試題及答案解析
- 心肺康復課件
- 2025中原農業(yè)保險股份有限公司招聘67人筆試參考題庫附帶答案詳解(3卷)
- 骶部炎性竇道的護理
- 2025人民法院出版社社會招聘8人(公共基礎知識)測試題附答案解析
- 多元催化體系下羊毛脂轉酯化制備膽固醇的工藝解析與效能探究
- 2025年山東省夏季普通高中學業(yè)水平合格考試物理試題(解析版)
- 外墻干掛石材修補施工方案
- 8.達托霉素在感染性心內膜炎的治療優(yōu)勢
- GB∕T 7758-2020 硫化橡膠 低溫性能的測定 溫度回縮程序(TR 試驗)
評論
0/150
提交評論