|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.nio.channels.Selector java.nio.channels.spi.AbstractSelector
public abstract class AbstractSelector
選擇器的基本實作類別。
此類別封裝了實作中斷選擇操作所需的低層級別機制。在調用可能無限期阻塞的 I/O 操作之前和之後,具體的選擇器類別必須分別調用 此類別還定義了用於維護選擇器的已取消鍵集和從其通道的鍵集中移除鍵的方法,並且為了執行實際的通道註冊工作,還宣告了由可選擇通道的
begin
和 end
方法。為了確保始終能夠調用 end
方法,應該在 try ... finally 塊中使用這些方法:
try {
begin();
// Perform blocking I/O operation here
...
} finally {
end();
}
register
方法所調用的抽象 register
方法。
建構子摘要 | |
---|---|
protected |
AbstractSelector(SelectorProvider provider)
初始化此類別的一個新實例。 |
方法摘要 | |
---|---|
protected void |
begin()
標記可能無限期阻塞的 I/O 操作的開始。 |
protected Set<SelectionKey> |
cancelledKeys()
獲取此選擇器的已取消鍵集。 |
void |
close()
關閉此選擇器。 |
protected void |
deregister(AbstractSelectionKey key)
從其通道的鍵集中移除給定的鍵。 |
protected void |
end()
標記可能無限期阻塞的 I/O 操作的結束。 |
protected abstract void |
implCloseSelector()
關閉此選擇器。 |
boolean |
isOpen()
告知此選擇器是否已打開。 |
SelectorProvider |
provider()
返回創建此通道的提供者。 |
protected abstract SelectionKey |
register(AbstractSelectableChannel ch,
int ops,
Object att)
向此選擇器註冊給定的通道。 |
從類別 java.nio.channels.Selector 繼承的方法 |
---|
keys, open, select, select, selectedKeys, selectNow, wakeup |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
protected AbstractSelector(SelectorProvider provider)
方法詳細資訊 |
---|
public final void close() throws IOException
如果已關閉該選擇器,則此方法立即返回。否則它會將該選擇器標記為已關閉,然後調用 implCloseSelector
方法以完成關閉操作。
Selector
中的 close
IOException
- 如果發生 I/O 錯誤protected abstract void implCloseSelector() throws IOException
為了實際關閉選擇器,由 close
方法調用此方法。僅在尚未關閉此選擇器時才能調用此方法,並且只能調用一次。
此方法的實作必須安排阻塞於此選擇器上選擇操作中的所有其他執行緒立即返回,就像調用 wakeup
方法一樣。
IOException
- 如果關閉選擇器的同時發生 I/O 錯誤public final boolean isOpen()
Selector
複製的描述
Selector
中的 isOpen
public final SelectorProvider provider()
Selector
中的 provider
protected final Set<SelectionKey> cancelledKeys()
僅應在該鍵集上實作同步後才能使用它。
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
為了實際向此選擇器註冊通道,由該通道的 register
方法調用此方法。
ch
- 要註冊的通道ops
- 初始的相關操作集,必須是有效的att
- 所得鍵的初始附件
protected final void deregister(AbstractSelectionKey key)
必須由選擇器為所註銷的每個通道調用此方法。
key
- 要移除的選擇鍵protected final void begin()
為了實作此選擇器的中斷,應該使用上面所示的 try ... finally 塊先後調用此方法和 end
方法。
如果調用某個執行緒的 interrupt
方法的同時該執行緒阻塞於選擇器上的某個 I/O 操作中,則調用此方法來安排選擇器的 wakeup
方法被調用。
protected final void end()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。