Javaでreadメソッドを中断の方法

Javaでは、以下の方法で読み取り操作を中断することができます。

  1. 入力ストリーム
  2. 閉じる
InputStream inputStream = // 获取输入流
inputStream.close(); // 中断读取操作
  1. 割り込みが可能なチャンネル
  2. 閉じる
ReadableByteChannel channel = // 获取可中断通道
channel.close(); // 中断读取操作
  1. スレッド
  2. 割り込み()
Thread thread = // 获取正在进行的读取操作的线程
thread.interrupt(); // 中断读取操作

なお、上記の方法で中断できるのは、読み込み操作でブロックしているスレッドのみであり、非ブロック状態の読み込み操作を中断することはできません。非ブロック状態の読み込み操作を中断するには、Selectorを使用して非ブロッキング I/O を実行している場合など、他の方法を使用する必要があります。その場合は、SelectionKey の interestOps を 0 に設定して読み込み操作を中断できます。

bannerAds