mmap + write怎么實現(xiàn)的零拷貝 2022-09-08
應(yīng)用進程再調(diào)用 write(),操作系統(tǒng)直接將內(nèi)核緩沖區(qū)的數(shù)據(jù)拷貝到 socket 緩沖區(qū)中,這一切都發(fā)生在內(nèi)核態(tài),由 CPU 來搬運數(shù)據(jù);詳情>
Synchronized使得同時只有一個線程可以執(zhí)行,性能比較差,有什么提升的方法 2022-09-08
輕量級鎖(Lightweight Locking):這種鎖實現(xiàn)的背后基于這樣一種假設(shè),即在真實的情況下我們程序中的大部分同步代碼一般都處于無鎖競爭狀態(tài)(即...詳情>
傳統(tǒng)的IO存在什么問題?為什么引入零拷貝的 2022-09-08
如果服務(wù)端要提供文件傳輸?shù)墓δ?,我們能想到的最簡單的方式是:將磁盤上的文件讀取出來,然后通過網(wǎng)絡(luò)協(xié)議發(fā)送給客戶端。傳統(tǒng) I/O 的工作方式...詳情>
什么是Java NIO 2022-09-08
傳統(tǒng)IO基于字節(jié)流和字符流進行操作,而NIO基于Channel和Buffer(緩沖區(qū))進行操作,數(shù)據(jù)總是從通道讀取到緩沖區(qū)中,或者從緩沖區(qū)寫入到通道中。...詳情>
什么是Reactor模型 2022-09-08
大多數(shù)網(wǎng)絡(luò)框架都是基于Reactor模型進行設(shè)計和開發(fā),Reactor模型基于事件驅(qū)動,特別適合處理海量的I/O事件。詳情>
什么是異步IO 2022-09-08
用戶進程進行aio_read系統(tǒng)調(diào)用之后,無論內(nèi)核數(shù)據(jù)是否準備好,都會直接返回給用戶進程,然后用戶態(tài)進程可以去做別的事情。等到socket數(shù)據(jù)準備...詳情>
Synchronized由什么樣的缺陷? Java Lock是怎么彌補這些缺陷的 2022-09-08
無法知道是否成功獲得鎖,相對而言,Lock可以拿到狀態(tài)Lock解決相應(yīng)問題。Lock類這里不做過多解釋,主要看里面的4個方法:lock(): 加鎖 unlock()...詳情>
什么是信號驅(qū)動IO 2022-09-08
應(yīng)用進程使用 sigaction 系統(tǒng)調(diào)用,內(nèi)核立即返回,應(yīng)用進程可以繼續(xù)執(zhí)行,也就是說等待數(shù)據(jù)階段應(yīng)用進程是非阻塞的。內(nèi)核在數(shù)據(jù)到達時向應(yīng)用進...詳情>
有哪些多路復用IO 2022-09-08
目前流程的多路復用IO實現(xiàn)主要包括四種: select、poll、epoll、kqueue。其他情況下多路復用IO技術(shù)發(fā)揮不出來它的優(yōu)勢。另一方面,使用JAVA NIO...詳情>
JVM中對象的分配過程 2022-09-08
為對象分配內(nèi)存是一件非常嚴謹和復雜的任務(wù),JVM 的設(shè)計者們不僅需要考慮內(nèi)存如何分配、在哪里分配等問題,并且由于內(nèi)存分配算法和內(nèi)存回收算...詳情>
熱問標簽 更多>>
在線提問
專業(yè)導師線上坐鎮(zhèn),解答個性化學習難題
提交問題