2012-03-16 47 views
6

看來,實際close()實現在基類和抽象方法實現的層次結構某處藏身。例如,你保證文件描述符被釋放嗎?這是最接近我想知道的:InputStreamReader.close()如何間接工作?

nd.preClose(fd); 
    long th; 
    if ((th = readerThread) != 0) 
    NativeThread.signal(th); 
    if ((th = writerThread) != 0) 
    NativeThread.signal(th); 
    if (!isRegistered()) 
    kill(); 

DatagramChannelImpl。任何人都可以翻譯成英文?

回答

4

所以我每次下潛源孫 Oracle的Java代碼,我很失望。 ND作爲一個變量的名字嗎?不會比這更不透明。

什麼第二被引用是NativeDispatcher它處理平臺的具體操作,如關閉文件描述符(好心命名變量FD)。我只能承擔NativeThread檢查和信號是清理讀/寫線程,源不放貸多的信息。從AbstractSelectableChannelisRegistered()確保通道沒有被使用和kill方法是關閉所有東西,最後調用nd.close(fd);

0

從的Javadoc:「關閉該流並釋放與之關聯的所有系統資源」。文件FD是一個系統資源。它會被關閉。