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