linux AIO (非同步IO) 那點事兒

2021-09-06 08:44:56 字數 617 閱讀 3012

linux aio (非同步io) 那點事兒 - cnode

在高效能的伺服器程式設計中,io 模型理所當然的是重中之重,需要謹慎選型的,對於網路套接字,我們可以採用epoll 的方式來輪詢,儘管epoll也有一些缺陷,但總體來說還是很高效的,尤其來大量套接字的場景下;但對於regular file 來說,是不能夠用採用 poll/epoll 的,即o_noblock 方式對於傳統檔案控制代碼是無效的,也就是說我們的 open ,read, mkdir 之類的regular file操作必定會導致阻塞.在多執行緒、多程序模型中,可以選擇以同步阻塞的方式來進行io操作,任務排程由作業系統來保證公平性,但在單程序/執行緒模型中,以nodejs 為例 ,假如 我們需要在乙個使用者請求中處理10個檔案:

function fun()

這時候程序至少會阻塞10次,而這可能會導致其他的上千個使用者請求得不到處理,這當然是不能接受的.

linux aio 早就被提上議程,目前比較知名的有 glibc 的 aio   與 kernel native aio

glibc aio:

kernel native aio:

學習那點事

這一周快過去了,回顧這一周,學到的,講到的東西,都很多,其實作為一名程式設計師,是不應該怕累的,雖然很累,學無止境,每天都要更新自己的知識,才能成為一名合格的程式設計師。我一直很想成為一名優秀的程式設計師,從剛開始的無知,經過很盲目,到現在明白了自己要學的是什麼,要怎樣學,這是乙個很艱難的過程,自己...

選舉那點事

選舉那點事 選舉前,大家都互相的打招呼,拉選票。可是我當時覺得好孤獨,好寂寞。當我看到大家在一起熱鬧的打招呼時,真的是忍受不了這種氛圍,偷偷的溜出去,暗自哭泣。我想知道這是不是以自我為中心,不願意走出去,將自己封閉了。我還想知道就那麼20票,當每個人都給你說要投他一票時,自己該怎麼說。老師說要的是鍛...

剝削那點事

鐵上無聊忽然想起了這個問題,竟然還想到了乙個答案。我想用乙個模糊點的稱呼 資本,我得出這樣乙個結論,所謂剝削不過是資本在社會博弈過程中所得到的分紅。資本在整個社會博弈中所面臨的對手包括管理機關,勞動者 和同業競爭者,其中管理機關也身擔裁判這個身份,這個紅利主要在勞動者身上取得,但是同時也和其他對手綜...