相关疑难解决方法(0)

是否有greenDAO线程安全最佳实践?

我正在使用greenDAO,到目前为止一切都很顺利.文档或网站(或任何地方:()似乎没有涉及的一件事是它如何处理线程安全.

我知道其他地方提到的基础知识,比如"使用单个dao会话"(Android + SQLite的一般做法),我非常了解Java内存模型.库内部甚至看起来是线程安全的,或者至少是用这种意图构建的.但我见过的一切都没有涵盖这个:

greenDAO默认缓存实体. 这对于完全单线程程序来说非常好 - 透明和大多数用途的大量性能提升.但是,如果我loadAll()然后修改其中一个元素,我将在我的应用程序中全局修改同一个对象.如果我在主线程上使用它(例如用于显示),并在后台线程上更新数据库(正确和正确),除非特别小心,否则会出现明显的线程问题.

greenDAO是否在"引擎盖下"做任何事情以防止常见的应用程序级线程问题?例如,修改UI线程中的缓存实体,同时将其保存在后台线程中(更好的希望它们不会交错!特别是在修改列表时!)?是否有任何"最佳实践"来防范它们,超出了一般的线程安全问题(即greenDAO期望和适用的东西)?或者从多线程应用程序的安全角度看整个缓存是否存在致命缺陷?

multithreading thread-safety greendao

18
推荐指数
1
解决办法
2774
查看次数

标签 统计

greendao ×1

multithreading ×1

thread-safety ×1