スレッドを開始し、次のようなものがあるとします。
...//initiate all the socket connection
future = executor.submit
( new Runnable()
{ public void run()
{ ...
...
while ((str = in.readLine()) != null)
{ //do something here
}
}
);
executorはExecutorServiceオブジェクトであり、inはBufferedReaderオブジェクトです。
別のスレッドからソケットを閉じて、このスレッドを中断できることを知っています。しかし、future.cancel(true)メソッドを使おうとすると、trueが返されても、スレッドはまだ実行されているように見えます。理由は誰にもわかりません。またはin.readLine()をこの方法で中断することはできませんか?