Verwenden Sie Mutex (Mutex) in C++, um gemeinsam genutzte Multithread-Ressourcen zu verarbeiten: Erstellen Sie einen Mutex über std::mutex. Verwenden Sie mtx.lock(), um einen Mutex für den exklusiven Zugriff auf gemeinsam genutzte Ressourcen zu erhalten. Verwenden Sie mtx.unlock(), um den Mutex freizugeben.
Umgang mit gemeinsam genutzten Ressourcen beim Multithreading in C++
Einführung
Wenn bei der Multithread-Programmierung mehrere Threads gleichzeitig auf gemeinsam genutzte Ressourcen zugreifen, treten Thread-Sicherheitsprobleme auf. Mutex (Mutex) ist ein Synchronisationsmechanismus, der sicherstellt, dass nur ein Thread gleichzeitig auf gemeinsam genutzte Ressourcen zugreifen kann, wodurch Datenkonkurrenz und Datenkorruption verhindert werden.
Die Syntax und Verwendung von Mutex
In C++ können Sie std::mutex
verwenden, um einen Mutex zu erstellen: std::mutex
来创建互斥量:
std::mutex mtx;
要对共享资源进行排他访问,需要使用 lock()
和 unlock()
mtx.lock(); // 获取互斥量 // 对共享资源进行操作 mtx.unlock(); // 释放互斥量
unlock()
: #include <iostream> #include <thread> #include <mutex> std::mutex mtx; int shared_resource = 0; void increment_resource() { mtx.lock(); shared_resource++; mtx.unlock(); } int main() { std::vector<std::thread> threads; // 创建多个线程并行执行 increment_resource() 函数 for (int i = 0; i < 1000; i++) { threads.push_back(std::thread(increment_resource)); } // 等待所有线程执行完毕 for (auto& thread : threads) { thread.join(); } // 打印共享资源的最终值,此时的值应该是 1000 std::cout << shared_resource << std::endl; return 0; }
Das obige ist der detaillierte Inhalt vonWie gehe ich mit gemeinsam genutzten Ressourcen beim Multithreading in C++ um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!