亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

深入SQLite多線程的使用總結詳解

2019-11-26 16:06:26
字體:
來源:轉載
供稿:網友

SQLite支持3種線程模式:
  單線程:這種模式下,沒有進行互斥,多線程使用不安全。禁用所有的mutex鎖,并發使用時會出錯。當SQLite編譯時加了SQLITE_THREADSAFE=0參數,或者在初始化SQLite前調用sqlite3_config(SQLITE_CONFIG_SINGLETHREAD)時啟用。

  多線程:這種模式下,只要一個數據庫連接不被多個線程同時使用就是安全的。源碼中是啟用bCoreMutex,禁用bFullMutex。實際上就是禁用數據庫連接和prepared statement(準備好的語句)上的鎖,因此不能在多個線程中并發使用同一個數據庫連接或prepared statement。當SQLite編譯時加了SQLITE_THREADSAFE=2參數時默認啟用。若SQLITE_THREADSAFE不為0,可以在初始化SQLite前,調用sqlite3_config(SQLITE_CONFIG_MULTITHREAD)啟用;或者在創建數據庫連接時,設置SQLITE_OPEN_NOMUTEX flag。

  串行:sqlite是線程安全的。啟用所有的鎖,包括bCoreMutex和bFullMutex 。因為數據庫連接和prepared statement都已加鎖,所以多線程使用這些對象時沒法并發,也就變成串行了。當SQLite編譯時加了SQLITE_THREADSAFE =1參數時默認啟用。若SQLITE_THREADSAFE不為0,可以在初始化SQLite前,調用sqlite3_config(SQLITE_CONFIG_SERIALIZED)啟用;或者在創建數據庫連接時,設置SQLITE_OPEN_FULLMUTEX flag  。

    而這里所說的初始化是指調用sqlite3_initialize()函數,這個函數在調用sqlite3_open()時會自動調用,且只有第一次調用是有效的.

   為了達到線程安全,SQLite在編譯時必須將 SQLITE_THREADSAFE 預處理宏置為1。在Windows和Linux上, 已編譯的好的二進制發行版中都是這樣設置的。如果不確定你所使用的庫是否是線程安全的,可以調用 sqlite3_threadsafe() 接口找出。調用sqlite3_threadsafe()可以獲得編譯期的SQLITE_THREADSAFE參數 。

   也就是說線程模式可以在編譯時(通過源碼編譯sqlite庫時)、啟動時(使用sqlite的應用程序初始化時)或者運行時(創建數據庫連接時)來指定。一般而言,運行時指定的模式將覆蓋啟動時的指定模式,啟動時指定的模式將覆蓋編譯時指定的模式。但是,單線程模式一旦被指定,將無法被覆蓋。默認的線程模式是串行模式。

編譯時選擇線程模式
    可以通過定義SQLITE_THREADSAFE宏來指定線程模式。如果沒有指定,默認為串行模式。定義宏SQLITE_THREADSAFE=1指定使用串行模式;=0使用單線程模式;=2使用多線程模式。

    sqlite3_threadsafe()函數的返回值可以確定編譯時指定的線程模式。如果指定了單線程模式,函數返回false。如果指定了串行或者多線程模式,函數返回true。由于sqlite3_threadsafe()函數要早于多線程模式以及啟動時和運行時的模式選擇,所以它既不能區別多線程模式和串行模式也不能區別啟動時和運行時的模式。

    最后一句可通過sqlite3_threadsafe函數的實現來理解SQLITE_API int sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; }如果編譯時指定了單線程模式,那么臨界互斥邏輯在構造時就被省略,因此也就無法在啟動時或運行時指定串行模式或多線程模式。

啟動時選擇線程模式
    假如在編譯時沒有指定單線程模式,就可以在應用程序初始化時使用sqlite3_config()函數修改線程模式。參數SQLITE_CONFIG_SINGLETHREAD可指定為
單線程模式,SQLITE_CONFIG_MULTITHREAD指定為多線程模式,SQLITE_CONFIG_SERIALIZED指定為串行模式。

運行時選擇線程模式
    如果沒有在編譯時和啟動時指定為單線程模式,那么每個數據庫連接在創建時可單獨的被指定為多線程模式或者串行模式,但是不能指定為單線程模式。如果在編譯時或啟動時指定為單線程模式,就無法在創建連接時指定多線程或者串行模式。

    創建連接時用sqlite3_open_v2()函數的第三個參數來指定線程模式。SQLITE_OPEN_NOMUTEX標識創建多線程模式的連接;SQLITE_OPEN_FULLMUTEX標識創建串行模式的連接。如果沒有指定標識,或者使用sqlite3_open()或sqlite3_open16()函數來創建數據庫連接,那么在編譯時或啟動時指定的線程模式將作為默認的線程模式使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品高清视频| 92国产精品久久久久首页| 精品久久久中文| 欧美福利视频在线观看| 国产69精品久久久久久| 久久中文字幕国产| 一区二区三区视频免费| 中文字幕亚洲在线| 国产男女猛烈无遮挡91| 成人高清视频观看www| 久久综合久久88| 欧美黑人xxx| 中文字幕亚洲图片| 伊人久久五月天| 欧美性猛交丰臀xxxxx网站| 91av福利视频| 亚洲男子天堂网| 亚洲自拍偷拍在线| 亚洲国产精品专区久久| 日本高清不卡在线| 日韩风俗一区 二区| 亚洲天堂免费视频| 国产精品欧美日韩一区二区| 大量国产精品视频| 欧洲成人免费视频| 在线观看日韩视频| 在线观看国产精品淫| 一区二区欧美日韩视频| 欧美日韩国产成人高清视频| 亚洲老板91色精品久久| 精品国产户外野外| 国产精品久久电影观看| 久久久久亚洲精品国产| 日韩在线视频线视频免费网站| 欧美成人在线网站| 久久影院在线观看| 91精品国产综合久久香蕉922| 色七七影院综合| 欧美国产日韩一区二区三区| 丰满岳妇乱一区二区三区| 亚洲精品在线观看www| 久久久久久久av| 欧美孕妇毛茸茸xxxx| 国产精品视频男人的天堂| 久久久爽爽爽美女图片| 伊人久久精品视频| 日韩欧美中文字幕在线观看| 亚洲免费影视第一页| 精品动漫一区二区三区| 日韩av免费一区| 国产又爽又黄的激情精品视频| 国产一区二区激情| 青青草原一区二区| 亚洲欧美日韩精品久久| 91免费综合在线| 欧美有码在线观看视频| 在线播放日韩专区| 精品国产精品自拍| 日韩欧美在线一区| 日韩精品福利网站| 91黄色8090| 久久人人看视频| 欧美一级电影久久| 美日韩精品免费观看视频| 亚洲xxxx视频| 91色视频在线导航| 欧美成人第一页| 欧美情侣性视频| 国产91对白在线播放| 久久亚洲电影天堂| 欧美伦理91i| 亚洲网在线观看| 国产亚洲欧美日韩精品| 国产亚洲欧洲在线| 国产精品网站视频| 91精品国产99| 欧美丝袜美女中出在线| 亚洲国内精品在线| 自拍偷拍亚洲欧美| 中文字幕av一区二区三区谷原希美| 45www国产精品网站| 九九热精品视频国产| 欧美激情免费观看| 国产精品视频资源| 日本道色综合久久影院| 色妞色视频一区二区三区四区| 欧美亚洲视频在线看网址| 欧美日产国产成人免费图片| 亚洲天堂av综合网| 欧美性受xxx| 亚洲欧美日韩网| 色天天综合狠狠色| 日韩电影大全免费观看2023年上| 日韩精品欧美激情| 亚洲精品短视频| 成人免费xxxxx在线观看| 国产精品美女视频网站| 欧美日韩国产一区二区三区| 国产精品中文字幕在线观看| 欧美在线观看日本一区| 亚洲老板91色精品久久| 91久久久久久久久久久久久| 国产日韩欧美视频| 麻豆成人在线看| 全球成人中文在线| 欧美精品在线第一页| 欧美成人免费一级人片100| 欧美大胆在线视频| 91精品久久久久久久久不口人| 国产久一一精品| 91国产美女在线观看| 欧美影院成年免费版| 亚洲视频综合网| 国产美女精品视频| 91精品在线一区| 久久精品国产v日韩v亚洲| 欧美日韩一区二区在线| 亚洲精品av在线播放| 久久福利视频导航| 91精品综合久久久久久五月天| 国产精品自拍网| 色噜噜国产精品视频一区二区| 成人精品一区二区三区电影黑人| 国产精品视频色| 精品久久久一区二区| 欧美一区深夜视频| 亚洲精品免费av| 日韩高清不卡av| 成人免费看黄网站| 国产欧美日韩免费看aⅴ视频| 精品亚洲一区二区三区| 欧美亚洲一区在线| 欧美一级视频免费在线观看| 国产精品一二三在线| 美女视频久久黄| 91av国产在线| 91免费电影网站| 美女久久久久久久久久久| 日韩免费在线免费观看| 久国内精品在线| 久久成人18免费网站| 亚洲欧美制服中文字幕| 亚洲第一二三四五区| 日韩av最新在线观看| 亚洲大胆人体av| 日韩电影中文字幕一区| 中文字幕在线亚洲| 精品久久久国产精品999| 国产亚洲日本欧美韩国| 欧美黑人巨大精品一区二区| 国产亚洲精品久久| 91精品国产乱码久久久久久久久| 久久精品亚洲94久久精品| 亚洲天堂第二页| 国a精品视频大全| 成人黄色片网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品视频永久免费播放| 精品国产精品自拍| 91性高湖久久久久久久久_久久99| 亚洲国产精品久久久久秋霞蜜臀| 97av在线播放| 最新日韩中文字幕| 欧美日韩另类在线|