【发布时间】:2017-04-18 12:42:46
【问题描述】:
我正在尝试在 Spring 中实现以下要求。
我有两个正在运行的@Async 线程,我们称它们为t_A 和t_B。
t_A 使用 @Scheduled 注释设置,它需要每 30 分钟运行一次(当前设置为 5 秒)。 t_B 应该持续运行,除非 t_A 在此时启动并开始其工作 t_B 将在 x 秒内休眠并重新采样 t_A 状态,一次 t_A 工作done t_B 将继续其工作,直到 t_A 再次启动。
目前我被困在两个主要点:
我不知道如何访问线程池执行器来检查线程状态
使用
@Scheduled时,线程似乎永远不会完成,它似乎只是在注释中设置的固定时间休眠。
有什么想法吗?
【问题讨论】:
-
不是
Locks 的选项吗? -
@FranciscoSpaeth 你能提供使用锁的例子吗?
-
你有没有想过这个实现的伪代码?
-
@FranciscoSpaeth 并不是真的我发布这个是为了获得一些想法或示例,以便我可以开始
-
t_A是否应该等到t_B完成循环迭代?
标签: java spring multithreading spring-boot