W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Netty是一個(gè)異步事件驅(qū)動(dòng)的NIO框架,Netty的所有IO操作都是異步非阻塞的。Netty 實(shí)際上是使用 Threads(多線程)處理 I/O 事件,熟悉多線程編程的讀者可能會(huì)需要關(guān)注同步代碼。但是這么做不好,因?yàn)橥綍?huì)影響程序的性能,Netty 的設(shè)計(jì)保證程序處理事件不會(huì)有同步。圖 Figure 3.1 展示了,你不需要在 Channel 之間共享 ChannelHandler 實(shí)例的原因:
Figure 3.1
該圖顯示,一個(gè) EventLoopGroup 具有一個(gè)或多個(gè) EventLoop。想象 EventLoop 作為一個(gè) Thread 給 Channel 執(zhí)行工作。 (事實(shí)上,一個(gè) EventLoop 是勢(shì)必為它的生命周期一個(gè)線程。)
當(dāng)創(chuàng)建一個(gè) Channel,Netty 通過 一個(gè)單獨(dú)的 EventLoop 實(shí)例來注冊(cè)該 Channel(并同樣是一個(gè)單獨(dú)的 Thread)的通道的使用壽命。這就是為什么你的應(yīng)用程序不需要同步 Netty 的 I/O操作;所有 Channel 的 I/O 始終用相同的線程來執(zhí)行。
更多關(guān)于 EventLoop 和 EventLoopGroup的知識(shí)我們將會(huì)在第15章討論。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: