Atomic Store
使用 AtomicReference 为缓存,io.github.autotweaker.api.storage.JsonStore 为持久化服务的存储基类。
AtomicStore 的优点是无锁,缺点是 update 块内不能挂起、不能有副作用。
V 应为一个不可变的类型,例如一个 不 包含 var 的数据类,或 java.util.UUID 这类不可直接变更值的类型,反例:MutableCollection。如果需要包装可变类型,请使用 MutableStore。
由于无锁,为了避免并发场景下可能的缓存与硬盘不同步,缓存会在后台异步保存,每半秒检查一次是否需要保存。
请确保在程序关闭前调用 shutdown 方法,可以注册一个 io.github.autotweaker.api.hook.ShutdownHook 来调用 shutdown。