国产探花免费观看_亚洲丰满少妇自慰呻吟_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;"語句


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛隆县| 西乌珠穆沁旗| 黔西县| 焦作市| 嘉峪关市| 金山区| 忻州市| 元谋县| 南川市| 嘉禾县| 库伦旗| 溆浦县| 永德县| 合水县| 阿拉尔市| 景东| 新泰市| 全南县| 湖州市| 安阳县| 泽州县| 拉萨市| 株洲县| 铁岭县| 邓州市| 台山市| 忻州市| 东乡县| 南部县| 商洛市| 义乌市| 襄汾县| 桦南县| 莱芜市| 长治县| 仲巴县| 驻马店市| 新闻| 惠来县| 万荣县| 乌兰察布市|