SQLITE 多进程查询出错database is locked

程序比较简单:

父进程查询数据库A表,没有更新操作

子进程同时查询数据库A表,查询出来的内容更新B表。

两个进程都放到while(1)循环中,速度慢的话就是2S执行一次就没有错,执行的速度快的话就会报错。

跑了一段时间就会报错 提示database is locked。

网上查了查说是多个进程可以同时查询,,一个时间内只能有一个更新。我这显然只有一个更新。不解 待续““

查了很久无果之后·写了个简单的while(1)循环

while ( 1 ) { if ( SQLITE_OK == sqlite3_get_table(db, sqlite_buf, &result, &nrow, &ncolumn, &errmsg)) {printf(“———–success——-errmsg = %s\n”, errmsg);break;}else{ printf(“————-fail——–errmsg = %s\n”, errmsg);usleep(500000); continue; }

网上有说用信号量做进程间同步的··我感觉效果差不多,不如这样简单···

抱最大的希望,为最大的努力,做最坏的打算

SQLITE 多进程查询出错database is locked

相关文章:

你感兴趣的文章:

标签云: