天天看點

java nio Channel源碼分析

package java.nio.channels;

import java.io.IOException;
import java.io.Closeable;


/**
 * 用于I/O操作的nexus。
 *
 * <p> 通道表示與實體(如硬體裝置、檔案、網絡套接字或程式元件)的開放連接配接,
 * 這些實體能夠執行一個或多個不同的I/O操作,例如讀或寫操作。
 *
 * <p> 通道要麼是打開的,要麼是關閉的。
 * 通道在建立時是打開的,一旦關閉,它将保持關閉狀态。
 * 一旦一個通道被關閉,任何對它調用I/O操作的嘗試都會導緻抛出一個ClosedChannelException。
 * 通道是否打開可以通過調用它的isOpen方法來測試。
 *
 * <p> 通常,通道對于擴充和實作此接口的接口和類的規範中描述的多線程通路是安全的。
 *
 *
 * @author Mark Reinhold
 * @author JSR-51 Expert Group
 * @since 1.4
 */

public interface Channel extends Closeable {

    /**
     * 告知此通道是否打開。
     *
     * @return <tt>true</tt> if, and only if, this channel is open
     */
    public boolean isOpen();

    /**
     * 關閉這個通道。
     *
     * <p> 在通道關閉後,任何對其調用I/O操作的進一步嘗試都将導緻抛出一個ClosedChannelException。
     *
     * <p> 如果此通道已經關閉,那麼調用此方法将不起作用。
     *
     * <p> 此方法可以在任何時候調用。
     * 但是,如果其他線程已經調用了它,那麼另一個調用将阻塞,直到第一個調用完成,之後它将傳回沒有效果。</p>
     *
     * @throws  IOException  If an I/O error occurs
     */
    public void close() throws IOException;

}
           

繼續閱讀