Thread.sleep()有什么替代方法吗?

时间:2014-04-07 16:31:34

标签: java

我需要在一个电话和另一个电话之间执行一些等待。 问题是这个等待将在库中进行,因此将Thread.sleep()放在那里不是一个好习惯。没有涉及摇摆,这个库是一个jna界面。

那么..有什么替代方案适合我的情况吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ScheduledThreadPoolExecutor。例如:

ScheduledExecutorService scheduledExecutorService =
        Executors.newScheduledThreadPool(1);

    ScheduledFuture scheduledFuture =
        scheduledExecutorService.schedule(new Callable() {
            public Object call() throws Exception {
                System.out.println("Executed!");
                return "Called!";
            }
        },
        5,
        TimeUnit.SECONDS);

首先使用一个线程创建ScheduledExecutorService

然后创建Callable接口的匿名实现并将其传递给schedule()方法。最后两个参数指定应在5秒后执行Callable