c++多线程加锁怎么实现

   2025-02-15 5250
核心提示:在C++中,可以使用std::mutex来实现多线程加锁。下面是一个简单的示例:#include iostream#include thread#include mutexstd::mu

在C++中,可以使用std::mutex来实现多线程加锁。下面是一个简单的示例:

#include <iostream>#include <thread>#include <mutex>std::mutex mtx; // 创建一个互斥锁void printNumber(int num) {    mtx.lock(); // 加锁    std::cout << num << std::endl;    mtx.unlock(); // 解锁}int main() {    std::thread t1(printNumber, 1);    std::thread t2(printNumber, 2);    t1.join();    t2.join();    return 0;}

在上面的示例中,我们首先创建了一个std::mutex对象mtx作为互斥锁。然后在printNumber函数中,我们使用mtx.lock()来加锁,保证只有一个线程能够访问std::cout输出语句。在输出完成后,使用mtx.unlock()进行解锁。

main函数中,我们创建了两个线程t1t2,分别调用printNumber函数,传入不同的参数。最后,通过t1.join()t2.join()等待两个线程执行完成。

需要注意的是,互斥锁应该在使用完后及时解锁,以避免死锁的发生。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言