多线程 – 有没有greenDAO线程安全最佳实践?
我已经和 greenDAO一起去了,到目前为止这都很好.文档或网站(或任何地方)()中似乎没有涵盖的一件事情是如何处理线程安全. 我知道其他地方提到的基础知识,例如“使用单个dao会话”(Android SQLite的一般做法),我也很了解Java内存模型.图书馆内部甚至显得线程安全,或者至少是用这个意图来构建的.但是我看不到什么涵盖了这一点: greenDAO默认缓存实体.这对于完全单线程的程序是非常好的 – 对大多数用途来说,透明度和大量性能提升.但是,如果我例如loadAll()然后修改其中一个元素,我在整个应用程序中全局修改同一个对象.如果我在主线程上使用它(例如显示),并且更新背景线程上的DB(正确和正确),除非特别小心,否则有明显的线程问题. greenDAO是否在“引擎盖”下做任何事情,以防止常见的应用程序级线程问题?例如,在UI线程中修改缓存的实体,同时将其保存在后台线程中(更好地希望他们不会交错!特别是在修改列表时)有没有任何“最佳做法”来保护他们,除了一般的线程安全问题(即greenDAO期望和运作良好)?还是从多线程应用程序安全的角度来看,整个缓存是否有致命的缺陷? 解决方法我没有greenDAO的经验,但文档在这里:http://greendao-orm.com/documentation/queries/ 说:
尽管我可以看到文档没有明确说明多线程,除了这一点,这似乎很清楚它被处理.这正在谈论使用相同的Query对象的多个线程,所以很明显,多个线程可以访问同一个数据库.当然,数据库和DAO处理并发访问是正常的,在这种情况下,有很多成熟的技术可以用于缓存. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 解决出现 java.lang.ExceptionInInitializerError错误问题
- java-Oracle 10g Webapp中的JAXB 2
- java – 选择具有预期数量的唯一值和插入的HashSet的初始容
- java中Collections.sort排序函数用法详解
- 使Java程序作为独立的exe(不运行JVM)
- JAVA代码开发规范
- 详解SpringMVC使用MultipartFile实现文件的上传
- Java中的private、protected、public和default的区别(详解)
- java – JsonMappingException没有单String构造函数/工厂方
- java 多态性详解及常见面试题