提问人:user1743524 提问时间:7/21/2023 更新时间:7/22/2023 访问量:42
我们是否需要为 Room 数据库使用同步块 [closed]
Do we need to use a synchronized block for Room database [closed]
问:
我有一些代码,我想使用线程池之类的东西,因为我一次进行多个事务。我曾经使用带有同步块的 SQLite 数据库。我认为 Room 可以为您处理多线程行为。这是对的吗?
答:
2赞
MikeT
7/21/2023
#1
我认为 Room 可以为您处理多线程行为。这是对的吗?
不,它没有。
Room 是 SQLite 的包装器,默认情况下,它不允许你使用主线程(在构建数据库时使用
.allowMainThreadQueires
可以规避限制)。最终结果仍然是 SQLite 数据库,根据生成的设备附带/已安装的 SQLite 版本。Room 确实实现了一些添加,例如 room_master_table(它存储一个哈希值,该值在运行时与编译的哈希值进行比较,以检测是否进行了更改(哈希是架构的哈希值,Room 根据定义的批注类生成该哈希值))。
@Entity
@Database
评论