是否可以设置用户输入的计时器?等待10秒钟-进行下一步操作等。
我的意思是

 //wait several seconds{
 String s = new BufferedReader(new InputStreamReader(System.in)).readLine();
 //wait server seconds}
 //next operation and etc.

最佳答案

不是开箱即用,不。通常,当另一个线程关闭基础流或到达输入的末尾时,Reader仅中断read()调用。

由于read()并非全部具有可中断性,因此这成为并发编程问题。知道超时的线程将需要能够中断正在尝试读取输入的线程。

本质上,读取线程将必须轮询Reader的ready()方法,而不是在没有要读取的内容时被锁定在read()中。如果将此轮询和等待操作包装在java.util.concurrent.Future中,则将调用带有超时的Future的get()方法。

本文将详细介绍:http://www.javaspecialists.eu/archive/Issue153.html

关于java - 设置用户输入的超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59604814/

10-12 01:42