Open MrCaiWH opened 6 years ago
我也遇到了同样的问题,请问你是怎么解决的
@xiaoerlong 没解决,不用了,换别的方式了
@MrCaiWH 我发现问题了,我是有几个子线程同时访问就会这样
一个线程访问也会报错
遇到同样的问题-_- 初始化db就报错了。。
@Chengruihh 你看一下是不是有多个线程访问
@xiaoerlong 貌似没有,只是在登录成功后保存了一下信息,还没有进入后面的逻辑。而且是很偶尔的会出现,大部分时候不出现。
YYKVStorage里面说明了,这个class不是thread safe的
并没有人直接使用 YYKVStorage,都是直接使用的 YYCache。但是 YYDiskCache 封装了 YYKVStorage,任然是会报上面的错误!
多线程同时操作同一张表引起,尝试自己加一个全局锁试一下 https://www.jianshu.com/p/6422ae4e06c2
2018-01-25 16:13:45.808 iKaoYan[27454:405585] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.816 iKaoYan[27454:405625] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.816 iKaoYan[27454:405585] -[YYKVStorage _dbExecute:] line:166 sqlite exec error (5): database is locked 2018-01-25 16:13:45.817 iKaoYan[27454:405585] YYKVStorage init error: fail to open sqlite db.