|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.nio.channels.spi.AbstractInterruptibleChannel java.nio.channels.SelectableChannel java.nio.channels.spi.AbstractSelectableChannel
public abstract class AbstractSelectableChannel
可選擇通道的基本實作類別。
此類別定義了處理通道註冊、註銷和關閉機制的各種方法。它會維持此通道的當前阻塞網要及其當前的選擇鍵集。它執行實作 SelectableChannel
規範所需的所有同步。此類別中所定義的抽象保護方法的實作不必與同一操作中使用的其他執行緒同步。
建構子摘要 | |
---|---|
protected |
AbstractSelectableChannel(SelectorProvider provider)
初始化此類別的一個新實例。 |
方法摘要 | |
---|---|
Object |
blockingLock()
獲取其 configureBlocking 和 register 方法實作同步的物件。 |
SelectableChannel |
configureBlocking(boolean block)
調整此通道的阻塞網要。 |
protected void |
implCloseChannel()
關閉此通道。 |
protected abstract void |
implCloseSelectableChannel()
關閉此可選擇通道。 |
protected abstract void |
implConfigureBlocking(boolean block)
調整此通道的阻塞網要。 |
boolean |
isBlocking()
判斷此通道上的每個 I/O 操作在完成前是否被阻塞。 |
boolean |
isRegistered()
判斷此通道當前是否已向任何選擇器註冊。 |
SelectionKey |
keyFor(Selector sel)
獲取表示通道向給定選擇器註冊的鍵。 |
SelectorProvider |
provider()
返回創建此通道的提供者。 |
SelectionKey |
register(Selector sel,
int ops,
Object att)
向給定的選擇器註冊此通道,返回一個選擇鍵。 |
從類別 java.nio.channels.SelectableChannel 繼承的方法 |
---|
register, validOps |
從類別 java.nio.channels.spi.AbstractInterruptibleChannel 繼承的方法 |
---|
begin, close, end, isOpen |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
從介面 java.nio.channels.Channel 繼承的方法 |
---|
close, isOpen |
建構子詳細資訊 |
---|
protected AbstractSelectableChannel(SelectorProvider provider)
方法詳細資訊 |
---|
public final SelectorProvider provider()
SelectableChannel
中的 provider
public final boolean isRegistered()
SelectableChannel
複製的描述由於鍵取消和通道註銷之間固有的延遲,所以在已取消某個通道的所有鍵後,該通道可能在一定時間內還會保持已註冊狀態。關閉通道後,該通道可能在一定時間內還會保持已註冊狀態。
SelectableChannel
中的 isRegistered
public final SelectionKey keyFor(Selector sel)
SelectableChannel
複製的描述
SelectableChannel
中的 keyFor
public final SelectionKey register(Selector sel, int ops, Object att) throws ClosedChannelException
此方法首先驗證此通道是否已打開,以及給定的初始相關操作集是否有效。
如果已向給定的選擇器註冊了此通道,則在將其相關操作集設置為給定值後,返回表示該註冊的選擇鍵。
如果尚未向給定的選擇器註冊此通道,則在保持適當鎖定的同時調用選擇器的 register
方法。返回前將得到的鍵添加到此通道的鍵集中。
SelectableChannel
中的 register
sel
- 要向其註冊此通道的選擇器ops
- 所得鍵的可用操作集att
- 所得鍵的附件,可能為 null
ClosedChannelException
- 如果此通道已關閉protected final void implCloseChannel() throws IOException
此方法在 AbstractInterruptibleChannel
類別中指定並且由 close
方法調用,為了實際關閉此通道,此方法依次調用 implCloseSelectableChannel
方法。然後取消此通道的所有鍵。
AbstractInterruptibleChannel
中的 implCloseChannel
IOException
- 如果關閉通道的同時發生 I/O 錯誤protected abstract void implCloseSelectableChannel() throws IOException
為了實際關閉此通道,由 close
方法調用此方法。僅在此通道尚未關閉時才能調用此方法,並且只能調用一次。
此方法的實作必須安排阻塞於此通道上 I/O 操作中的所有其他執行緒立即返回,要麼拋出異常,要麼正常返回。
IOException
public final boolean isBlocking()
SelectableChannel
複製的描述如果此通道已關閉,則此方法返回的值是未指定的。
SelectableChannel
中的 isBlocking
public final Object blockingLock()
SelectableChannel
複製的描述configureBlocking
和 register
方法實作同步的物件。在要求在短時間內維持特定阻塞網要的適配器實作中,這通常是很有用的。
SelectableChannel
中的 blockingLock
public final SelectableChannel configureBlocking(boolean block) throws IOException
如果給定的阻塞網要與當前的阻塞網要不同,那麼為了改變該網要,此方法調用 implConfigureBlocking
方法,同時保持適當的鎖定。
SelectableChannel
中的 configureBlocking
block
- 如果為 true,則此通道將被置於阻塞網要;如果為 false,則此通道將被置於非阻塞網要
ClosedChannelException
- 如果此通道已關閉
IOException
- 如果發生 I/O 錯誤protected abstract void implConfigureBlocking(boolean block) throws IOException
為了執行實際的更改阻塞網要的工作,由 configureBlocking
方法調用此方法。僅在新網要與當前網要不同時才調用此方法。
IOException
- 如果發生 I/O 錯誤
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。