程序比较简单:
父进程查询数据库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; }
网上有说用信号量做进程间同步的··我感觉效果差不多,不如这样简单···
抱最大的希望,为最大的努力,做最坏的打算