java - 如何在java中实现超时来查看是否有响应

标签 java

我有两个功能,一个是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/

相关文章:

java - 按钮提交时 Wicket 面板不会刷新

java - 验证十进制数

java - Unknown ordinal value [46] for enum class error with Hibernate

java - 关闭框架的最佳方法?

Java:游戏的并发性

java - 一般问题 : T extends interface type. 无法调用方法来返回扩展类型的对象?

java - 了解 GC 失败消息

java - Servlet 安全过滤器

java - JTextArea 具有相同的参数但大小不同

java - 无法在 Eclipse 中创建 GAE 实体