ToB企服应用市场:ToB评测及商务社交产业平台

标题: C++11原子变量:线程安全、无锁操作的实例解析 [打印本页]

作者: 立山    时间: 2024-4-9 21:16
标题: C++11原子变量:线程安全、无锁操作的实例解析
 
在 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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4