[多进程访问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] 解决方法的主要内容,如果未能解决你的问题,请参考以下文章