我有两个功能,一个是master,另一个是slave。通过主函数,我试图学习其他函数的行为。但我应该在设定的时间间隔内进行任何计算。在这一部分中,如何设置一个计时器,如果超时则标记为 boolean 变量,并了解是否发生超时?
func1 -----send message------> func2
start timer
if timeout occur, do something else
最佳答案
你可以在另一个线程中执行func2
,让你原来的线程join()
具有指定的超时时间。
当然,您需要注意正确的同步。
简单示例(省略了 InteruptedException
处理)
void func1(){
Thread slave = new Thread(new Runnable(){
public void run(){
func2();
}
});
slave.start();
slave.join(100); // waits 100 milliseconds for slave to complete
if(!slave.isAlive()){
//slave completed its task
}else{
//slave not done yet, do something else
somethingElse();
}
}
关于java - 如何在java中实现超时来查看是否有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385933/