C++ std::thread 多线编程

这段C++代码展示了如何使用lambda函数创建并运行多线程,每个线程执行内存分配和释放操作。代码创建了50个线程,每个线程内部循环128次,总共产生50*128个线程,每个线程分配1000字节的内存后立即释放。所有线程执行完毕后,使用join等待所有线程结束,然后清空线程容器。
摘要由CSDN通过智能技术生成

linux C 的库有定义关于多线程的函数,这里我们介绍一下C++ 关于thread 的库和一些接口。

下面是一个是一个C++多线程的应用,创建多个线程,进行同事申请内存和释放内存操作。线程function 采用的是lamada 函数。


    constexpr auto           number  = 128U;
    std::vector<std::thread> testThreads;

    for (size_t j = 0; j < 50; j++)
    {
        for (size_t i = 0; i < number; i++)
        {
            testThreads.emplace_back(
                [this, i]()
                {
                    uint8_t* testPtr =
                        allocate(1000);
                    free(testPtr);
                });
        }

        for (auto& th : testThreads)
        {
            th.join();
        }
        testThreads.clear();
    }

上面这段代码,首先会创建50*128 个线程,每个线程都会执行allocate 1000字节大小的堆内存,然后free 释放申请的内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值