10

重複の可能性:
ソケット IO 操作でブロックしているスレッドを即座に終了する方法は?

Java のソケットから読み取りたいスレッドでクライアントを実行しています。しかし、読んでいるうちに、スレッドを殺したいと思うかもしれません。だから私はinterruptそれをしますが、ソケットの読み取りメソッドはスローしInterruptedExceptionますか? 見つかりませんでした。

では、スレッドがソケットの読み取りをブロックしているときにスレッドを終了させるにはどうすればよいでしょうか?

ありがとう

4

2 に答える 2

2

NIOチャネルにはInterruptableChannelがあり、ブロッキング操作で中断されます。NIOをブロッキング操作で使用できるため、Java IOとほぼ同じように機能します。つまり、セレクター/ディスパッチャーなどを使用するためにアプリケーションを再開発する必要はありません。

于 2011-05-29T07:57:13.047 に答える
2

ソケットIO操作でブロックしているスレッドを即座に終了する方法は回答されていますか?

基本的にclose()、ソケットを使用すると、関連付けられているすべてのストリームが閉じられ、ブロックされていたすべての操作がブロック解除されます。

または、呼び出すThread.interrupt()と、ブロッキング操作が中断され、InterruptedException.

于 2011-05-29T04:24:38.747 に答える