c 多執行緒程式設計 unique lock

2021-10-25 05:37:46 字數 563 閱讀 1516

unique_lock是乙個比lock_guard功能更加強大的加鎖機制。它可以提供彈性加鎖服務。即使用者指定加鎖的地方,也可以指定解鎖的地方。還可以將鎖的所有權進行轉讓。

以下**除了第一行都可以預設。

std::unique_lock(std::mutex) locker(mu, std::defer_lock);

// code1

locker.lock();

// code2

locker.unlock();

// code3

lock

優點缺點

unique_lock

用法更靈活,可以精確控制加鎖和解鎖的**塊

消耗更多效能

lock_guard

占用更少的資源,效能更好

不夠靈活

#include#include#includestatic int a = 0;

std::mutex mu;

void add1000()

}int main()

C 多執行緒程式設計

一 thread 基礎 程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。執行緒 執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式 方...

C 多執行緒程式設計

乙個程序通常定義為程式的乙個例項。在win32中,程序佔據4gb的位址空間。與它們在ms dos和16位windows作業系統中不同,win32程序是沒有活力的。這就是說,乙個win32程序並不執行什麼指令,它只是佔據著4gb的位址空間,此空間中有應用程式exe檔案的 和資料。exe需要的任意dll...

C 多執行緒程式設計

建立執行緒的函式 handle createthread lpsecurity attributes lpthreadattributes,使用預設安全形態,設為null,表明不可被子執行緒繼承 size t dwstacksize,初始棧大小,預設值0表示使用與呼叫該函式的執行緒相同的棧大小 lp...