MFDB多執行緒程式設計

2021-07-11 10:48:09 字數 768 閱讀 4455

mfdb 自動支援多執行緒程式設計,要注意的是:

1、多個執行緒不能使用同乙個 fmdatabase 物件例項;

2、只能使用乙個 fmdatabasequeue 物件例項,來進行多執行緒程式設計;

3、即多個執行緒共享乙個 fmdatabasequeue 是安全, fmdatabasequeue 會保證執行緒順序訪問資料庫,如下圖;

4、另外,使用 fmdatabasequeue 的執行緒,在訪問資料庫操作返回前,會被阻塞起來,

因此,如果在主線程裡使用 fmdatabasequeue 可能會影響 ui 的及時響應;

1、建立佇列例項: 

fmdatabasequeue* queue = [fmdatabasequeue databasequeuewithpath:apath];

2、使用:

[queue indatabase:^(fmdatabase *db) 

}];

此外,還可以使用事務:

[queue intransaction:^(fmdatabase *db, bool *rollback) 

// etc…

[db executeupdate:@"insert into mytable values (?)", [nsnumber numberwithint:4]];

}];

多執行緒程式設計

1 多執行緒的基本思路不是在介面執行緒執行費時的 而是專門啟動乙個執行緒 稱作工作執行緒 來完成,介面執行緒只負責介面的 顯示 和操作,而工作執行緒只負責耗時的操作過程。2 對於普通的win32應用程式來說,執行緒可以分為兩種 介面 ui user inte ce 執行緒和工作執行緒。介面執行緒一般...

多執行緒程式設計

如何編寫執行緒安全的dll 在我的工作中經常會編寫dll,這些dll有個共同的特點就是都有乙個初始化函式,乙個資源釋放函式,其他幾個函式都是核心功能函式。而且這些dll有時會被多個程序同時呼叫,這就牽扯到多程序的多執行緒呼叫dll的問題。有點繞口,以下我根據我實踐中遇到的問題,分四種情況分享一下我解...

多執行緒程式設計

1 執行緒的狀態 建立狀態 準備好了乙個多執行緒的物件 就緒狀態 呼叫了start 方法,等待cpu進行排程 執行狀態 執行run 方法 阻塞狀態 暫時停止執行,可能將資源交給其他執行緒使用 終止狀態 死亡狀態 執行緒銷毀 2 執行緒的常用方法 thread類 取得執行緒名稱 getname thr...