在异步方法中调用Thread.sleep()

时间:2014-11-21 13:45:42

标签: java multithreading testing asynchronous sleep

是否可以通过调用该特定方法中的Thread.sleep(4000)来查看异步(EJB @Asynchronous)方法是否真的以异步方式工作,以查看sleep是否实际上停止了其他Web客户端进程4秒或者如果进程刚好在异步方法中发生,客户端本身会继续进行下一个任务吗?

我问是因为,如果sleep(4000)调用会阻止webclient运行4秒,即使异步方法按预期工作,即使我的代码工作正常,我的测试结果也会失败。

谢谢。

1 个答案:

答案 0 :(得分:1)

Thread.sleep()只暂停调用该方法的一个线程 - 所有其他方法继续正常执行。异步执行的整个想法是你有多个独立运行的线程,所以如果需要一段时间它就不会影响其他线程。