gpt4 book ai didi

java - 更新守护进程中的变量 - Java

转载 作者:行者123 更新时间:2023-12-01 13:37:10 24 4
gpt4 key购买 nike

我有一个守护进程,它处理一些记录并在其内存中保存一些stored_data。我想根据发生的一些事件不断更新该数据。

我知道我必须使用后台线程将更改更新回主内存中的stored_data。但是如何将数据传递给线程呢?

目前我知道的方法有:1)将后台线程公开为服务,该服务将公开添加api2) 让后台线程轮询某个位置,该位置预计是记录添加内容的常见位置,并从那里选择它。

请告诉我这是否正确。谢谢。

最佳答案

当您想到“轮询”或“定期更新”时,请使用 ScheduledExecutorService定期执行“检查数据更新”任务。您不需要守护线程来执行此操作,并且根据我的经验,使用计划任务可以使代码更易于维护。例如。在这种情况下,它将把 stored_data 与线程分开,这是一件好事,因为线程不拥有数据(数据包含在不必是线程的对象中,例如,您可以传递 stored_data 变量到由线程执行的 Runnable)。

当您认为“事件驱动”时,守护线程是合适的,因为它会在事件发生时立即处理它们(无延迟)。您可以决定让守护线程为事件执行工作,或者为事件创建任务并让这些任务由 ExecutorService(如 CachedThreadPool)执行。 。查看“Watching a directory”教程,了解如何接收此类守护线程的文件系统事件。

关于java - 更新守护进程中的变量 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com