C++11原子变量:线程安全、无锁操作的实例解析

打印 上一主题 下一主题

主题 923|帖子 923|积分 2769

 
在 C++11 中,原子变量(std::atomic)提供了一种线程安全的方式来操作共享变量。下面是一个简单的例子,演示了C++11原子变量的用法。
[code]#include #include #include std::atomic counter(0); // 声明一个原子整数变量void incrementCounter(int id, int iterations) {    for (int i = 0; i < iterations; ++i) {        counter++; // 原子操作,无需额外的锁    }}int main() {    const int numThreads = 5;    const int iterationsPerThread = 100000;    std::thread threads[numThreads];    // 启动多个线程,每个线程增加计数器    for (int i = 0; i < numThreads; ++i) {        threads = std::thread(incrementCounter, i, iterationsPerThread);    }    // 等待所有线程完成    for (int i = 0; i < numThreads; ++i) {        threads.join();    }    std::cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表