实现线程安全的指数规

时间:2014-01-06 06:22:35

标签: java multithreading thread-safety

我正在实现一个基于java的指数规,它将具有一个初始值(比如说1.0)并且会在时间上呈指数衰减到0.另一个函数会不时地增加规范值。现在我需要一些帮助来开发线程安全。

我正在考虑使用java计时器或执行程序来创建衰减功能,该功能将每5毫秒减少一次仪表的值。同时另一个函数,当被调用时会增加该值。

现在我假设它会出现并发问题,所以需要帮助才能正确实现它。

我的问题是:

  1. 如何设计一个将执行该函数的类,每5毫秒减少一次该值。

  2. 如何使其线程安全,以便其他线程可以更新同一个变量。

  3. 任何帮助?

1 个答案:

答案 0 :(得分:1)

是的,计量变量会有并发性。

使用线程安全实施(例如AtomicInteger)来保存值。多个线程可以安全地同时更新此变量。

对于减小值的函数,请使用Timer。方法schedule将允许您指定句点。

(注意:您可以通过声明变量volatile来实现同步,但在开始之前,请确保您完全理解其中的含义和陷阱,例如运行var++