std lock guard作用域內自動上鎖解鎖

2021-10-24 07:18:26 字數 615 閱讀 4271

對於不同執行緒訪問統一資源時,為了避免衝突一般都通過對目標共享變數上鎖和解鎖,讓共享變數互斥

// 定義鎖

std::mutex m_mutex;

// 上鎖

m_mutex.

lock()

;// 上鎖和解鎖之間為對共享變數的訪問操作.....

// 解鎖

m_mutex.

unlock()

;

#include

#include

#include

#include

//全域性變數,兩個執行緒都會訪問

int g_num =0;

//定義鎖

std::mutex m_mutex;

void

bar(

)void

foo()}

intmain()

std::lock_guard需要在作用域範圍開頭定義,也可以通過塊操作限制其作用域範圍,例如:

void

func()

// 範圍結束..

..}

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...

Python作用域 全域性作用域 區域性作用域

在python中,每個函式都會建立乙個作用域。pythonistas也可能稱函式擁有它們自己的命名空間 namespace 這意味著當在函式體裡遇到變數名 時,python首先在該函式的命名空間中查詢,python包含了一些讓我們檢視命名空間的函式。讓我們寫乙個簡單的函式來探查一下local和glo...

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...