欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
socket 模型簡(jiǎn)介

socket 模型簡(jiǎn)介

關(guān)鍵字: socket 線(xiàn)程模型

共同點(diǎn):
ServerSocket serverSocket = new ServerSocket(80);
sokcet s = serverSocket.accept();

區別:
1 原始:(線(xiàn)程池)
每來(lái)一個(gè)請求分配新的一個(gè)線(xiàn)程來(lái)處理,繼續等待下一個(gè)請求,這個(gè)過(guò)程中每一個(gè)線(xiàn)程一直等待數據的到來(lái)。這種情況導致隨并發(fā)量多 線(xiàn)程數增加,系統消耗比較大
2 select(2個(gè)線(xiàn)程)
每來(lái)一個(gè)請求則把s給select,繼續等待下一個(gè)請求。來(lái)數據時(shí)select里copy一個(gè)套接字,來(lái)處理緩沖區數據(這個(gè)過(guò)程很耗時(shí)),因當時(shí)的條件所限制select里只能放64個(gè)套接字,也就是說(shuō)并發(fā)最大量為64. 一個(gè)線(xiàn)程處理接受,另一個(gè)進(jìn)程處理套接字處理數據
3 poll(2個(gè)線(xiàn)程)
每來(lái)一個(gè)請求把s給poll(push進(jìn)去),繼續等待下一個(gè)請求,來(lái)數據時(shí)從push里彈出套接字(不用copy了),處理緩沖區的數據。支持并發(fā)可以數千個(gè)。
一個(gè)線(xiàn)程處理接受,另一個(gè)進(jìn)程處理套接字處理數據
4 epoll(2個(gè)線(xiàn)程)
每來(lái)一個(gè)請求把s給epoll(push進(jìn)去),來(lái)數據時(shí)緩存,需要處理數據時(shí),把緩沖區的數據和套接字一起返回,這樣節省了readBuffer的時(shí)間,效率更高
一個(gè)線(xiàn)程處理接受,另一個(gè)進(jìn)程處理套接字處理數據

下面深入講一下epoll模型和iocp模型的異同之處

目前國內的網(wǎng)游研發(fā),在服務(wù)器使用的開(kāi)發(fā)平臺方面,win和linux的比例各占多少,我一時(shí)半會(huì )也沒(méi)有準確數據,但從我了解的這么多公司情況來(lái)看,用win系統的還是比較多一點(diǎn),這些企業(yè)一般都是比較單純的網(wǎng)游公司,而用linux的則多數是一些傳統的互聯(lián)網(wǎng)公司,比如網(wǎng)易和騰訊。

網(wǎng)游服務(wù)器用win還是linux,向來(lái)都是大家關(guān)注的話(huà)題。我想,原因可能很多,但此處不想過(guò)多論述這個(gè)問(wèn)題,為避免多費口舌,我還是明確表明一下自己的觀(guān)點(diǎn):我是推薦用linux作開(kāi)發(fā)的,雖然我也是剛轉來(lái)作linux平臺下的開(kāi)發(fā)。

那么,說(shuō)具體一點(diǎn)。但凡作過(guò)比較深入的網(wǎng)絡(luò )編程的人,都會(huì )知道,在win平臺下,高效的IO模型是IOCP,而在linux底下則是epoll。那么,epoll與iocp之間到底有哪些異同之處呢?

首先,我們看一下它們相同的地方。

兩者都是處理異步IO的高效模型,這種高效,除了“異步處理”這個(gè)共同的特征之外,二者都可以通過(guò)指針攜帶應用層數據:在IOCP里,應用層數據可以通過(guò)單句柄數據和單IO數據來(lái)與IOCP底層通信;而在epoll里,可以通過(guò)epoll_data里的"void*ptr"來(lái)傳遞。這是一種很重要的思想,也是它們高效的原因所在:當事件的通知到來(lái)時(shí),它不僅告訴你發(fā)生了什么樣的事件,還同時(shí)告訴這次事件所操作的數據是哪些。

那么,epoll和iocp到底又有什么不同呢?

以我目前粗淺的使用經(jīng)驗來(lái)看,至少可以得到以下結論:

1.iocp是在IO操作完成之后,才通過(guò)get函數返回這個(gè)完成通知的;而epoll則不是在IO操作完成之后才通知你,它的工作原理是,你如果想進(jìn)行IO操作時(shí),先向epoll查詢(xún)是否可讀或可寫(xiě),如果處于可讀或可寫(xiě)狀態(tài)后,epoll會(huì )通過(guò)epoll_wait函數通知你,此時(shí)你再進(jìn)行進(jìn)一步的recv或send操作。

2.在1的基礎上,我們其實(shí)可以看到,epoll僅僅是一個(gè)異步事件的通知機制,其本身并不作任何的IO讀寫(xiě)操作,它只負責告訴你是不是可以讀或可以寫(xiě)了,而具體的讀寫(xiě)操作,還要應用層自己來(lái)作;但iocp的封裝就要多一些,它不僅會(huì )有完成之后的事件通知,更重要的是,它同時(shí)封裝了一部分的IO控制邏輯。從這一點(diǎn)上來(lái)看,iocp的封裝似乎更全面一點(diǎn),但是,換個(gè)角度看,epoll僅提供這種機制也是非常好的,它保持了事件通知與IO操作之間彼此的獨立性,使得epoll的使用更加靈活。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
EPOLL和IOCP比較
IOCP 詳解
Web服務(wù)器之Nginx詳解(理論部分) - Share your knowledge … - 51CTO技術(shù)博客
libevent編程疑難解答
高性能服務(wù)端漫談
網(wǎng)絡(luò )編程模型綜述 之 成熟的IO框架介紹
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久