草庐IT

async_wait

全部标签

java - 是否可以在单元测试期间禁用 Spring 的 @Async?

我有一个用@Async注释的方法说@AsyncpublicvoidmakeFood(){}但我只是想测试该方法的逻辑。是否可以同步测试? 最佳答案 是的,只要你的配置没有@EnableAsync,方法就会同步执行。 关于java-是否可以在单元测试期间禁用Spring的@Async?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/29929824/

java - 如果 wait() 抛出 InterruptedException,线程是否等待直到它获取对象的监视器?

例如:publicsynchronizedObjectget(){while(result==null){try{wait();}catch(InterruptedExceptione){e.printStackTrace();//Doweownthemonitorofthisobject?}}returnresult;}当e.printStackTrace()执行时,我们是否保证拥有对象的监视器?引用资料说,当wait()在notify()或notifyAll()调用后返回时,线程会等待直到它获得对象的监视器。但是如果wait()抛出异常呢? 最佳答案

java - 直接使用 Spring @Async 与 CompleteableFuture 相比有什么优势?

使用SpringAsync有什么好处?vs.自己返回CompletableFuture? 最佳答案 两者之间没有“vs.”——它们是互补技术:CompletableFuture提供了一种方便的方式来链接异步计算的不同阶段——比Spring的ListenableFuture更灵活;@Async为您的执行器提供标准的Spring配置,方便地管理您的后台任务和线程。但两者可以结合使用(sinceSpring4.2)。假设您想将以下方法变成返回CompletableFuture的后台任务:publicStringcompute(){//do

Java:如何区分wait()中的虚假唤醒和超时

这是一个线程正在等待notify()或超时的情况。这里添加了一个while循环来处理虚假唤醒。booleandosleep=true;while(dosleep){try{wait(2000);/***Writesomecodeheresothat*ifitisspuriouswakeup,gobackandsleep.*orifitistimeout,getoutoftheloop.*/}catch(InterruptedExceptione){e.printStackTrace();}}在这种情况下,我如何区分虚假唤醒和超时?如果是虚假唤醒,我需要回去等待。如果超时,我需要跳出循环

java - Selenium WebDriver : wait for element to be present when locating with WebDriver. findElement 是不可能的

使用WebDriverWait和ExpectedConditions等待WebElement很方便。问题是,如果WebElement.findElment是定位元素的唯一可能方式,因为它没有ID、没有名称、没有唯一类,那会怎样?WebDriverWait的构造函数只接受WebDriver作为参数,不接受WebElement。我已经设置了implicitlyWait时间,所以使用try{}catch(NoSuchElementExceptione){}似乎不是个好主意,因为我不这样做不想为这个元素等待那么长时间。场景如下:有一个网页的表单包含许多input标签。每个input标签都有格式

Java 线程 wait() => 阻塞?

根据Javathreadstateinfo调用wait()将导致线程进入BLOCKED状态。然而,这段代码将导致(在被调用之后)线程处于等待状态。classbThreadextendsThread{publicsynchronizedvoidrun(){try{wait();}catch(InterruptedExceptione){e.printStackTrace();}}}我是不是搞错了什么?谁能向我解释这种行为?任何帮助将不胜感激! 最佳答案 线程在收到通知之前一直在等待。然后它变成BLOCKED尝试重新进入同步区域,直到所

java - wait() 和 yield() 的区别

到目前为止,我对wait()和yield()方法的理解是,yield()在线程未执行任何任务并让CPU执行其他线程时调用。wait()在某些线程被搁置时使用,通常用于同步的概念。但是,我无法理解它们在功能上的区别,也不确定我所理解的是对还是错。有人可以解释一下它们之间的区别吗(除了它们所在的包装之外)。 最佳答案 aren'ttheybothdoingthesametask-waitingsothatotherthreadscanexecute?甚至不接近,因为yield()不会等待任何事情。每个线程都可以处于多种不同状态中的一种:

java - 在 kill 时优雅地退出 Clojure core.async go 循环

我有一个顶级core.async去循环。我希望它无限期地运行,至少直到我用CTRL-C或kill发出停止信号为止。或类似的。我目前正在使用java.lang.Runtime/addShutdownHook像这样:(nsasync-demo.core(:require[clojure.core.async:asasync:refer[!这是我的问题:如果我启动REPL和(run),它就会启动并在后台线程中运行。当我退出REPL时,我没有看到所需的关闭消息。但是,当我从leinrun运行时,go循环立即退出并显示“SHUTDOWN”。这都不是我想要的。我不一定期望找到适用于所有JVM的解决

java - 如何调试 MATLAB (java) 错误 : timeout waiting for window to show up?

我正在尝试运行一个MATLAB程序,该程序以六个不同的图形创建一个GUI。最后一个figure(...)命令超时:"UIJ_AreThereWindowShowsPending-timeoutwaitingforwindowtoshowup"它可以在具有完全相同设置(OSX10.7.2、Java1.6.0_26-b03-383-11A511和MATLABR2011a)的不同计算机上运行。我发现了一些有类似问题但还没有解决方案的人发来的帖子。有人认为这是一个java内存问题。我已经尝试在MATLAB中增加java的内存。我还设置了Java首选项以显示控制台,但它不会显示,而且我在任何地方

java - CPU 使用率和 Object.wait

我使用JProfiler分析我的应用程序,结果在“CPUView”部分显示超过40%的CPU时间花费在Object.wait()上。但是据我所知,Object.wait()CPU没有分配给等待线程。有人可以帮助理解发生了什么以及为什么分析器显示这么多CPU花费在Object.wait()上吗? 最佳答案 探查器不知道CPU在wait()中处于空闲状态。探查器只知道输入了wait(),几毫秒后返回。因此,如果这些毫秒往往会占用您执行时间的40%,那么您就知道了。 关于java-CPU使用率