【发布时间】:2017-06-04 11:11:32
【问题描述】:
我正在编写一个多线程应用程序,我遇到的情况是我有某些与库相关的方法只能在main-thread 上运行。目前我正在运行一个简单的、自写的解决方案,它在队列上侦听任务,然后在它们进入时顺序执行它们。
到目前为止,尽管当我需要返回值等时它会变得很丑陋,但到目前为止它仍然有效。(我目前正在通过将数据结构与任务一起传递来解决 c-way,然后进行繁忙循环检查结构是否已写入在排队任务的方法的站点上。
这并不是最干净的解决方案,虽然它有效,但我希望找到更好的方法来做到这一点..
问:JDK 或单个专业 库中是否有任何东西可以满足我的需求?或者是否有任何编程模式能够以简洁和结构化的方式满足我的需求?
【问题讨论】:
-
为什么不直接将未来添加到您现有的架构中?传递
CompletableFuture而不是与投票相关的结构。然后客户端可以使用get()方法等待(或轮询)它。 -
@RomanPuchkovskiy 我想我不知道从哪里开始实施未来的机制。也许我想得太远了.....除非我只是有一个绝妙的主意,即简单地使用信号量作为 get 方法的一种等待锁定:/
-
在建议的方法中添加了插图
标签: java multithreading task scheduling