Skip to content

Most visited

Recently visited

navigation
Added in API level 1

AbstractInterruptibleChannel

public abstract class AbstractInterruptibleChannel
extends Object implements Channel, InterruptibleChannel

java.lang.Object
   ↳ java.nio.channels.spi.AbstractInterruptibleChannel
Known Direct Subclasses
Known Indirect Subclasses


AbstractInterruptibleChannel is the root class for interruptible channels.

The basic usage pattern for an interruptible channel is to invoke begin() before any I/O operation that potentially blocks indefinitely, then end(boolean) after completing the operation. The argument to the end method should indicate if the I/O operation has actually completed so that any change may be visible to the invoker.

Summary

Protected constructors

AbstractInterruptibleChannel()

Public methods

final void close()

Closes an open channel.

final boolean isOpen()

Returns true if this channel is open.

Protected methods

final void begin()

Indicates the beginning of a code section that includes an I/O operation that is potentially blocking.

final void end(boolean success)

Indicates the end of a code section that has been started with begin() and that includes a potentially blocking I/O operation.

abstract void implCloseChannel()

Implements the channel closing behavior.

Inherited methods

From class java.lang.Object
From interface java.nio.channels.Channel
From interface java.nio.channels.InterruptibleChannel
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Protected constructors

AbstractInterruptibleChannel

Added in API level 1
AbstractInterruptibleChannel ()

Public methods

close

Added in API level 1
void close ()

Closes an open channel. If the channel is already closed then this method has no effect, otherwise it closes the receiver via the implCloseChannel method.

If an attempt is made to perform an operation on a closed channel then a ClosedChannelException is thrown.

If multiple threads attempt to simultaneously close a channel, then only one thread will run the closure code and the others will be blocked until the first one completes.

Throws
IOException if a problem occurs while closing this channel.

See also:

isOpen

Added in API level 1
boolean isOpen ()

Returns true if this channel is open.

Returns
boolean

Protected methods

begin

Added in API level 1
void begin ()

Indicates the beginning of a code section that includes an I/O operation that is potentially blocking. After this operation, the application should invoke the corresponding end(boolean) method.

end

Added in API level 1
void end (boolean success)

Indicates the end of a code section that has been started with begin() and that includes a potentially blocking I/O operation.

Parameters
success boolean: pass true if the blocking operation has succeeded and has had a noticeable effect; false otherwise.
Throws
AsynchronousCloseException if this channel is closed by another thread while this method is executing.
ClosedByInterruptException if another thread interrupts the calling thread while this method is executing.

implCloseChannel

Added in API level 1
void implCloseChannel ()

Implements the channel closing behavior.

Closes the channel with a guarantee that the channel is not currently closed through another invocation of close() and that the method is thread-safe.

Any outstanding threads blocked on I/O operations on this channel must be released with either a normal return code, or by throwing an AsynchronousCloseException.

Throws
IOException if a problem occurs while closing the channel.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.