W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當引導我們的應用程序啟動和運行之后,我們也需要懂得如何關閉它。雖然您可以使用JVM來處理所有退出,但是這樣做并不能很干凈地釋放資源。如果要關閉一個Netty的應用程序是挺簡單的,但是需要記住以下幾點。
主要是記住關閉 EventLoopGroup,將處理任何懸而未決的事件和任務并隨后釋放所有活動線程。這只是一種叫EventLoopGroup.shutdownGracefully()。這個調(diào)用將返回一個 Future 用來通知關閉完成。注意,shutdownGracefully()也是一個異步操作,所以你需要阻塞,直到它完成或注冊一個偵聽器直到返回的 Future 來通知完成。
清單9.9定義了“優(yōu)雅地關閉”
Listing 9.9 Graceful shutdown
EventLoopGroup group = new NioEventLoopGroup() //1
Bootstrap bootstrap = new Bootstrap(); //2
bootstrap.group(group)
.channel(NioSocketChannel.class);
...
...
Future<?> future = group.shutdownGracefully(); //3
// block until the group has shutdown
future.sync();
或者,您可以調(diào)用 Channel.close() 顯式地在所有活動管道之前調(diào)用EventLoopGroup.shutdownGracefully()。但是在所有情況下,記得關閉EventLoopGroup 本身
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: