Dzwebs.Net

撰写电脑技术杂文十余年

c++多线程共享数据与异步的实现

Admin | 2025-12-4 15:00:23 | 被阅次数 | 12

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆
/*
多线程共享数据与异步的实现
*/
#include <iostream>
#include <vector>
#include <chrono>
#include <mutex>
#include <atomic>
#include <thread>
using namespace std;
atomic<int> c(6);
mutex print_locak;//该变量可自行取名
void new_thread(thread::id mainid){
    int temp = c++;
    cout<<"主ID:"<<mainid<<";子ID:"<<this_thread::get_id()<<";temp:"<<temp<<endl;
    if(temp==9){
        this_thread::sleep_for(chrono::seconds(3));
        {
            lock_guard<mutex> lock(print_locak);
            cout<<"\n子ID为:"<<this_thread::get_id()<<",休息秒数:"<<3<<";temp:"<<temp<<endl;
        }
    }  
}
int main() {
    cout<<"主线程开始,ID为:"<<this_thread::get_id()<<endl;
    vector<thread> T;
    for(int i=0;i<6;i++){
        T.emplace_back(new_thread,this_thread::get_id());
    }
    for(auto& t:T){
        if(t.joinable()){
            t.join();
        }
    }
    return 0;

}

/*



主线程开始,ID为:1
主ID:1;子ID:2;temp:6
主ID:1;子ID:7;temp:7
主ID:1;子ID:6;temp:8
主ID:1;子ID:4;temp:9
主ID:1;子ID:5;temp:10
主ID:1;子ID:3;temp:11


子ID为:4,休息秒数:3;temp:9

*/


该杂文来自: 最新技术

上一篇:c++将.in读为默认输入及将输出保存为文件的代码

下一篇:暂时没有文章了

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计