【发布时间】:2011-05-10 02:38:32
【问题描述】:
我有一个执行以下代码的线程:
public void run() {
try {
int n = 0;
byte[] buffer = new byte[4096];
while ((n = in.read(buffer)) != -1) {
out.write(buffer, 0, n);
out.flush();
}
} catch (IOException e) {
System.out.println(e);
}
}
其中in 是System.in。我怎样才能优雅地停止这样的线程?关闭 System.in 或使用 Thread.interrupt 似乎都不起作用。
【问题讨论】:
-
使用中断会发生什么?
-
@tulskiy:线程继续运行,直到手动输入 Ctrl-D (EOF)。
标签: java multithreading stream