我正在用 Java 开发一个简单的测试框架,它需要通过响应 JMS 调用来模拟 weblogic 部署。测试配置选项之一是模拟延迟的延迟。我想知道是否有人对如何做到这一点有任何好主意。我本来打算创建一个 TimerTask 来处理它,有没有更好的方法?谢谢。
最佳答案
您可以创建一个 ScheduledExecutorService 来执行您在延迟后要做的事情。
private final ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
// is main loop, waits between 10 - 30 ms.
executor.schedule(new Runnable() { public void run() {
// my delayed task
}}, 10 + new Random().nextInt(20), TimeUnit.MILLI_SECOND);
编辑:您可以将 Concurrency Backport 用于 JDK 1.4。它适用于 JDK 1.2 到 JDK 6