一个初级的线程函数
一个初级的线程函数
创建10个线程,每个线程内进行计数操作,有锁.
对认识线程,有一定的帮助作用。
#include <iostream> // std::cout #include <thread> // std::thread #include <mutex> // std::mutex using namespace std; volatile int counter(0); //定义一个全局变量,当作计数器,用于累加 std::mutex mtx; //用于包含 counter 的互斥锁 void thrfunc() { for(int i=0;i<50;++i) { // 互斥锁上锁 if(mtx.try_lock()) { ++counter; // 计数器累加 cout<<counter<<endl; mtx.unlock(); // 互斥锁解锁 } else { cout <<"try_lock false"<<endl; } } } int main(int argc, const char* argv[]) { std::thread threads[10]; for(int i=0;i<10;++i) { threads[i] = std::thread(thrfunc); // 启动10个线程 } for(auto & th:threads) { th.join();//等待10个线程结束 } cout <<"count to "<<counter<<" successfully "<<endl; return 0; } //g++ demo1.cpp -o demo1 -l pthread
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-08-29 centos中开启daytime服务