我遇到一个ROOM问题,我正在同时写作和阅读,并且在写作过程中,阅读部分被阻塞或非常缓慢。
这是我的体系结构:
如果没有任何同步,则直接显示活动,如果有同步,则来自DB的数据。 如果正在进行同步,需要进行大量书写,则活动太长而无法显示(20到60秒)。.
我已将“日志”模式设置为RoomDatabase.JournalMode.WRITE_AHEAD_LOGGING
,但仍然相同。
总结一下:
//在执行器下面,正在从Room中读取一些DISK。但是由于有一些写作,因此被屏蔽了……不知道为什么。
Executors.newSingleThreadExecutor().execute {// DISK READING....}
编写部分由多个线程执行,Worker使用此Executors.newFixedThreadPool(3)
调用网络服务,
并将网络结果传递到另一个服务(diskIO),以在Room中处理和保存数据。
读写数据库是否有任何限制?我的意思是,如果线程太多,会不会有问题? (我尝试了一个连接网络和数据库的线程,但仍然是同一问题。)