国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

sqlite:多線程操作數據庫“database is locked”解決方法(二)

2024-06-28 13:23:41
字體:
來源:轉載
供稿:網友
sqlite:多線程操作數據庫“database is locked”解決方法(二)

上一篇博客《sqlite:多線程操作數據庫“database is locked”解決方法》通過注冊延時函數的方法來處理數據庫被鎖的問題。此方法固然能解決問題,但是在多個線程向數據庫寫入大量數據的情況下,延時會拖慢進度。

想出方法二:

1. 創建一個鏈表,鏈接如下格式的結構體,線程1,線程2,線程3......不直接改寫數據庫,而是把sql語句插入鏈表中;

typedef struct {uint8_t *buf;uint32_t len;} sqlItem_t;

2. 創建一個獨立的線程,專職從鏈表中讀取sql語句,對數據庫進行改寫。

這樣只有一個線程對數據庫進行操作,數據庫被鎖的問題即可避免了,對數據庫的處理效率也大大提高。

3. 使用事務進一步提高sqlite處理性能

思路如下:

執行"begin transaction;"語句執行多條insert/update/delete/...語句執行"commit transaction;"語句


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥中县| 叶城县| 泰宁县| 金山区| 黄平县| 乾安县| 安丘市| 松滋市| 房山区| 宿州市| 长兴县| 绥芬河市| 龙海市| 富锦市| 佛学| 仁寿县| 弋阳县| 土默特左旗| 阿拉善左旗| 个旧市| 淳安县| 揭阳市| 曲麻莱县| 沧源| 伊春市| 珲春市| 南江县| 昌图县| 唐海县| 通许县| 金川县| 金乡县| 奈曼旗| 兰坪| 怀仁县| 永仁县| 津南区| 黄梅县| 西乌| 商都县| 绥芬河市|