java - TIMEr 执行后的代码不起作用

标签 java timer

这是代码:

public class Controller {
    NetworkDiscovery n;
    public static int discoveryInterval=2000;

    public static void main(String[] args) throws UnknownHostException{
        Timer t1=new Timer();
        t1.scheduleAtFixedRate(new NetworkDiscovery(), 2000, discoveryInterval);
        System.out.println("null");
    }
}

假设有一个 NetworkDiscovery 类,它有一个 run() 并且其上的所有内容都工作正常,则 println() 本身不会被执行。为什么会这样?

是否有另一种方法可以在执行其他操作的同时在后台重复执行某个操作?

最佳答案

当我尝试使用以下虚拟实现时,它似乎按照广告中的方式工作:

import java.net.UnknownHostException;
import java.util.Timer;
import java.util.TimerTask;

public class Controller {

    private static final class NetworkDiscovery extends TimerTask {
        @Override
        public void run() {
            System.out.println("NetworkDiscovery");
        }
    }

    NetworkDiscovery n;
    public static int discoveryInterval = 2000;

    public static void main(String[] args) throws UnknownHostException {
        Timer t1 = new Timer();
        t1.scheduleAtFixedRate(new NetworkDiscovery(), 2000, discoveryInterval);
        System.out.println("null");
    }
}

我得到以下输出:

null
NetworkDiscovery
NetworkDiscovery
...(every 2000 milliseconds)...

关于java - TIMEr 执行后的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648875/

相关文章:

java - 具有默认安全性的 Spring Security 为 PUT 提供 401,为 GET 提供 200

java - 固定定时器和随机方向

java - Java中良好的身份验证和授权包?

java - Object.parse 中的 JSON 意外标记

java - 如何通过对值施加任何条件将 2 个 HashMap 添加到 1 个 HashMap

javascript - Internet Explorer 渲染问题(简单的 JS 计时器 - window.setTimeout)

c - 可移植的获取时间的方式

linux - 为什么在/proc/interrupts 中不显示启用rtc 中断?

java - 使用计时器问题将 jLabel 更改为特定字符串

java - 如何在 hadoop 中将 reducer 输出作为 xml 格式