C++多线程编程实例:使用互斥锁保护共享资源

作者:佚名 上传时间:2023-12-01 运行软件:C++编程环境 软件版本:C++11及以上 版权申诉

本示例演示了在C++中如何使用互斥锁(std::mutex)来保护多线程环境下的共享资源,防止数据竞争和不一致性。

#include <iostream>
#include <thread>
#include <mutex>

// 共享资源
int shared_data = 0;

// 互斥锁
std::mutex data_mutex;

// 线程函数,模拟对共享资源的操作
void thread_function(int id) {
    for (int i = 0; i < 5; ++i) {
        // 加锁
        std::lock_guard<std::mutex> lock(data_mutex);

        // 访问共享资源
        shared_data++;
        std::cout << "线程 " << id << " 修改共享资源,当前值:" << shared_data << std::endl;

        // 解锁在lock_guard生命周期结束时自动进行
    }
}

int main() {
    // 创建两个线程
    std::thread t1(thread_function, 1);
    std::thread t2(thread_function, 2);

    // 等待线程结束
    t1.join();
    t2.join();

    return 0;
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
C++多线程编程实例使用互斥保护共享资源
本示例演示了在C++中如何使用互斥锁(std::mutex)来保护多线程环境下的共享资源,防止数据竞争和不一致性。#include <iostream>#include <thr
C++11及以上
C++编程环境
2023-12-01 13:41
QNX中使用互斥保护共享资源
在多线程编程中,多个线程可能同时访问共享资源,为了防止数据竞争或者死锁等问题的发生,需要使用互斥锁进行保护。本示例代码演示了如何在QNX中使用互斥锁来保护共享资源。#include <pthr
QNX 7.0
QNX Momentics IDE
2023-05-28 18:48
C++多线程编程实例互斥应用
本示例演示如何在C++中使用互斥锁确保多线程程序的数据安全。通过创建两个线程,模拟并发访问共享资源的情况,并使用互斥锁保护该资源,防止数据竞争。#include <iostream>#
C++11及以上
Visual Studio Code
2023-12-09 09:21
C++多线程编程实例:线程同步与互斥
本示例展示了如何在C++中使用多线程进行并发编程,通过互斥锁确保线程间同步,防止数据竞争。采用C++11标准的和库。#include <iostream>#include <th
C++11及以上
C++ 编译器 (例如,g++)
2023-11-22 01:25
C++多线程编程实例互斥的正确使用方法
本示例演示了在C++中使用互斥锁(std::mutex)来确保多线程程序的正确同步。互斥锁是防止多个线程同时访问共享资源的关键工具,避免数据竞争和不一致性。#include <iostream
C++11及以上
Visual Studio Code
2023-12-05 03:09
Python多线程编程使用Lock互斥
主要介绍了Python多线程编程(四):使用Lock互斥锁,本文讲解了互斥锁概念、同步阻塞、代码示例等内容,需要的朋友可以参考下
PDF
57KB
2020-09-29 04:39
VxWorks中实现互斥保护共享资源的示例代码
本示例展示了如何在VxWorks中使用互斥锁来保护多线程中的共享资源,确保数据的正确性和一致性。可用于网络、嵌入式等领域。#include "vxworks.h"#includ
VxWorks 6.6
Wind River Systems
2023-04-22 21:09
C++多线程编程中的互斥应用
C++多线程编程中,互斥锁(mutex)是用于保护共享资源免受并发访问的关键工具。本示例将介绍如何在C++中使用互斥锁,保护共享数据的一致性,以及处理多线程竞争的技术。#include <io
C++14
Visual Studio
2023-10-17 14:25
Rust并发编程实例多线程数据同步与互斥
本示例演示了如何在Rust中使用多线程进行数据同步,通过互斥锁(Mutex)确保线程安全。通过创建一个简单的计数器,多个线程增加其值,同时保持数据一致性。use std::sync::{Mutex,
Rust 1.56.0
Rust 编程语言
2023-11-24 12:47
Rust多线程编程实例:并发数据访问与互斥
在Rust中实现并发程序时,需要处理多个线程访问共享数据可能带来的竞争条件问题。互斥锁(Mutex)是一种常用的解决方案,它允许线程安全地访问共享数据。本示例演示了如何使用Rust的std::sync
Rust 1.5.0
Rust 编程语言
2023-12-05 14:57