Java : AbstractInterruptibleChannel con ejemplos
AbstractInterruptibleChannel (Java SE 22 & JDK 22) en Java con ejemplos.
Encontrará muestras de código para la mayoría de los métodos AbstractInterruptibleChannel.
Nota :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
Summary
Clase de implementación base para canales interrumpibles. (Traducción automática)
try (final var executor = Executors.newSingleThreadExecutor()) {
final var future = executor.submit(() -> {
try (final var channel = ServerSocketChannel.open()) {
System.out.println("AbstractInterruptibleChannel : "
+ (channel instanceof AbstractInterruptibleChannel));
System.out.println("bind ...");
channel.bind(new InetSocketAddress("127.0.0.1", 8000));
System.out.println("bind OK!");
System.out.println("accept ...");
channel.accept();
System.out.println("accept OK!");
} catch (ClosedByInterruptException e) {
System.out.println("ClosedByInterruptException!");
} catch (IOException e) {
System.out.println("IOException!");
}
});
TimeUnit.SECONDS.sleep(2);
System.out.println("-- future.cancel --");
future.cancel(true);
}
// Result
// ↓
//AbstractInterruptibleChannel : true
//bind ...
//bind OK!
//accept ...
//-- future.cancel --
//ClosedByInterruptException!
try (final var executor = Executors.newSingleThreadExecutor()) {
try (final var channel = ServerSocketChannel.open()) {
executor.submit(() -> {
try {
System.out.println("bind ...");
channel.bind(new InetSocketAddress("127.0.0.1", 8000));
System.out.println("bind OK!");
System.out.println("accept ...");
channel.accept();
System.out.println("accept OK!");
} catch (AsynchronousCloseException e) {
System.out.println("AsynchronousCloseException!");
} catch (IOException e) {
System.out.println("IOException!");
}
});
TimeUnit.SECONDS.sleep(2);
System.out.println("-- channel.close --");
}
}
// Result
// ↓
//bind ...
//bind OK!
//accept ...
//-- channel.close --
//AsynchronousCloseException!
Constructors
AbstractInterruptibleChannel ()
Inicializa una nueva instancia de esta clase. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
Methods
protected final void begin ()
Marca el comienzo de una operación de E/S que podría bloquearse indefinidamente. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
final void close ()
Cierra este canal. (Traducción automática)
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
AbstractInterruptibleChannel channel;
try (final var fc = FileChannel.open(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
channel = fc;
System.out.println(channel.isOpen()); // true
}
System.out.println(channel.isOpen()); // false
// An example without a try-with-resources statement.
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
final AbstractInterruptibleChannel channel = FileChannel.open(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE);
try {
System.out.println(channel.isOpen()); // true
} finally {
channel.close();
}
System.out.println(channel.isOpen()); // false
protected final void end (boolean completed)
Marca el final de una operación de E/S que podría bloquearse indefinidamente. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected abstract void implCloseChannel ()
Cierra este canal. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
final boolean isOpen ()
Indica si este canal está abierto o no. (Traducción automática)
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
AbstractInterruptibleChannel channel;
try (final var fc = FileChannel.open(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
channel = fc;
System.out.println(channel.isOpen()); // true
}
System.out.println(channel.isOpen()); // false
// An example without a try-with-resources statement.
final var path = Path.of("R:", "java-work", "test.data");
System.out.println(path); // R:\java-work\test.data
final AbstractInterruptibleChannel channel = FileChannel.open(path,
StandardOpenOption.CREATE, StandardOpenOption.WRITE);
try {
System.out.println(channel.isOpen()); // true
} finally {
channel.close();
}
System.out.println(channel.isOpen()); // false
Related posts
- Ejemplos de API