gpt4 book ai didi

java - 如何停止在 Java 中的阻塞读取操作中等待的线程?

转载 作者:IT老高 更新时间:2023-10-28 21:01:51 25 4
gpt4 key购买 nike

我有一个执行以下代码的线程:

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);
}
}

其中 inSystem.in。我怎样才能优雅地停止这样的线程?关闭 System.in 或使用 Thread.interrupt 似乎都不起作用。

最佳答案

这是因为读取 System.in (InputStream) 是一个阻塞操作。

看这里Is it possible to read from a InputStream with a timeout?

关于java - 如何停止在 Java 中的阻塞读取操作中等待的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4182491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com