我想基于某种外部输入(可能是字符串)立即终止一个周期,但是我不知道它何时到来,我想到C语言中的处理程序只是在信号到达的时候起作用, Java中是否有某种异步方法可在特定输入到达的确切时间起作用?
或多或少我想做的事的例子:
public void run(){
while(/*condition*/){
//somewhere in here there is a:
String s= inSocket.readLine();
// and in the bottom, I could put an if:
if( /*s condition*/){
break;
}
// here some other code that I still want to execute
}
在这种情况下,循环仅在我写break
的特定行处停止;每当接收到的字符串具有特定值时,我都希望它在任何行上中断]
我想基于某种外部输入(可能是字符串)立即终止循环,但是我不知道它何时到来,我想到C语言中的处理程序仅在信号出现时起作用...
Java通过signal handling类(sun.misc.Signal
)支持background。但是,在许多情况下,使用shutdown hooks(这是高级抽象)和JDK的正式组成部分将使您的工作更加轻松。