多线程 – 有没有greenDAO线程安全最佳实践?
我已经和 greenDAO一起去了,到目前为止这都很好.文档或网站(或任何地方)()中似乎没有涵盖的一件事情是如何处理线程安全. 我知道其他地方提到的基础知识,例如“使用单个dao会话”(Android SQLite的一般做法),我也很了解Java内存模型.图书馆内部甚至显得线程安全,或者至少是用这个意图来构建的.但是我看不到什么涵盖了这一点: greenDAO默认缓存实体.这对于完全单线程的程序是非常好的 – 对大多数用途来说,透明度和大量性能提升.但是,如果我例如loadAll()然后修改其中一个元素,我在整个应用程序中全局修改同一个对象.如果我在主线程上使用它(例如显示),并且更新背景线程上的DB(正确和正确),除非特别小心,否则有明显的线程问题. greenDAO是否在“引擎盖”下做任何事情,以防止常见的应用程序级线程问题?例如,在UI线程中修改缓存的实体,同时将其保存在后台线程中(更好地希望他们不会交错!特别是在修改列表时)有没有任何“最佳做法”来保护他们,除了一般的线程安全问题(即greenDAO期望和运作良好)?还是从多线程应用程序安全的角度来看,整个缓存是否有致命的缺陷? 解决方法我没有greenDAO的经验,但文档在这里:http://greendao-orm.com/documentation/queries/ 说:
尽管我可以看到文档没有明确说明多线程,除了这一点,这似乎很清楚它被处理.这正在谈论使用相同的Query对象的多个线程,所以很明显,多个线程可以访问同一个数据库.当然,数据库和DAO处理并发访问是正常的,在这种情况下,有很多成熟的技术可以用于缓存. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 将包含ASCII字符的字节数组转换为字符串
- java – 从log4j.Logger获取getLogger的一般方式
- 一个合格JAVA软件工程师应该具备什么
- 如果您在Java中显式初始化Object数组,那么包含与
- java – 基于Spring Annotation的控制器在jar文件
- java servlet手机app访问接口(一)数据加密传输验
- Spring Boot中使用jdbctemplate 操作MYSQL数据库
- java – SHA256与RSA和SHA256之间的差异,然后RSA
- java – Spark Web框架记录请求和响应
- java – 配置Spring Security以使用customPasswo