zoukankan      html  css  js  c++  java
  • 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 ", errmsg);
       break;
      }
      else
      {    
       printf("-------------fail--------errmsg = %s ", errmsg);
       usleep(500000);   
       continue;   
      }    

    网上有说用信号量做进程间同步的··没有做进一步的尝试···延迟是比较笨的方法了··

  • 相关阅读:
    pygame各个模块概述
    安装pygame
    pygame系列
    把字符串转换成整数
    不用加减乘除做加法
    求1+2+3+...+n
    孩子们的游戏(圆圈中最后剩下的数)
    翻转单词顺序列
    左旋转字符串
    和为s的两个数字
  • 原文地址:https://www.cnblogs.com/yinseyingji/p/3441278.html
Copyright © 2011-2022 走看看