【发布时间】:2020-09-23 11:18:22
【问题描述】:
我想在 Java 的单线程中异步执行一个方法(不返回任何东西,只是清理东西)。请让我知道该怎么做。
【问题讨论】:
-
在标准 Java 中确实有 no such thing。您将需要另一个线程(来自某个地方,可能来自公共池)。
-
您究竟为什么要在“单线程”上执行此操作?
-
我使用的框架不是线程安全的。因此,我希望它在单线程上异步执行
-
“单线程”和“异步”是矛盾的。
-
这只是一个名字。这些异步函数要么运行 deferred (稍后在同一个线程中,这不是异步的),要么正在确定一个封装了浏览器实现的真正异步操作的承诺(在幕后使用线程) .让你的回调在同一个线程中执行只有在特定线程实现事件循环时才有效,就像浏览器一样。使用 AWT 事件处理线程,这样的行为是可能的。对于单线程执行器的唯一工作线程也是如此。但不适用于任意线程,因为它不会执行这样的循环。
标签: java multithreading spring-boot asynchronous