[多进程访问sqlite3 bug] 解决方法

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[多进程访问sqlite3 bug] 解决方法相关的知识,希望对你有一定的参考价值。

背景:sqlite3数据库的读取,写入,查找,删除等操作以库的形式给出
写两个进程模拟多进程访问数据库文件导致的错误,最后给出解决方法

关于libdata.so和database.h头文件

database.h只是申明了一个虚基类,database_impl.h和database_impl.cpp继承了database类,并进行了具体实现。
我们将database_impl.h和database_impl.cpp文件编译成libdatabase.so库文件。

别人在使用的时候,只需要用到libdatabase.so库文件和database.h就可以访问我们设计的API了

给出两个进程访问sqlite3数据库文件的操作

process1.cpp

#include <iostream>
#include <vector>
#include <unistd.h>
#include <memory>
#include "common.h"
#include "database.h"

using namespace std;
using namespace ara::per;

class Oper

public:
	Oper();
	~Oper();
	void CreateDBTable();
	void InsertOneRecord(const int i);

private:	
	std::shared_ptr<DatabaseInterface> sp_db = nullptr;
;

Oper::Oper()

	sp_db = DatabaseInterface::get_instance();
	sp_db

以上是关于[多进程访问sqlite3 bug] 解决方法的主要内容,如果未能解决你的问题,请参考以下文章

C#使用读写锁三句代码简单解决多线程并发写入文件时提示“文件正在由另一进程使用,因此该进程无法访问此文件”的问题

svn: Failed to run the WC DB work queue associated svn的bug解决

Linux socket多进程服务器框架二

Android 极光推送造成IM服务绑定失败bug

ActionScript 3 使用TLFTextField时AS3 Bug访问FlashVars(解决方法)

项目.多进程SVG_BUG排除