SQLITE 多进程查询出错database is locked
2024-10-09 19:42:08
程序比较简单:
父进程查询数据库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;
}
网上有说用信号量做进程间同步的··我感觉效果差不多,不如这样简单···
最新文章
- 史上最详细的iOS之事件的传递和响应机制
- html自我设计login登录
- EntityFramework+MySql 笔记1
- 在IIS中部署ASP.NET 5应用程序遭遇的问题
- C# winform应用程序仅能打开一个进程运行
- 使用show profiles分析SQL性能
- 关于jQuery的bind()\trigger()\triggerHandler()
- 设置BootStrap导航条的高度
- uva 498 - Polly the Polynomial
- spring框架详解
- 不容错过的UI设计素材大合集
- C#+ArcEngine中com对象的释放问题
- [ JDK ] 列表转数组 toArray
- JAVA IO分析二:字节数组流、基本数据&;对象类型的数据流、打印流
- git冲突时解决方法
- Hecher学生互助平台(团队项目第一次)
- Django积木块八——三级联动
- python 第四阶段 学习记录之----异步
- Delphi消息推送
- GPG key retrieval failed