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