c++:使用std的多线程

File : thread.cpp (直接右键另存为下载)
Type : c++
Brief : 使用std的多线程类


int                g_cnt = 0;
std::mutex        g_mtx;                    // 互斥量

void tfunc(int k)
{
    std::this_thread::sleep_for(std::chrono::milliseconds(10));

    g_mtx.lock();
    g_cnt++;
    std::cout << "k: " << k << "        " << "g_cnt: " << g_cnt << std::endl;
    g_mtx.unlock();
}

int main()
{
    std::thread* thrd_child[10];

    int k = 0;
    while(k < 10)
    {
        thrd_child[k] = new std::thread(tfunc,k);    // 按值传递参数k
        //thrd_child[k]->join();        // 阻塞当前线程,直至 *this 所标识的线程完成其执行。
        thrd_child[k]->detach();        // 从 thread 对象分离执行的线程,允许执行独立地持续。
        k++;
    }

    while(1)
    {
        char ch = getch();

        if('q' == ch || 27 == ch)
            break;
    };
    return 0;
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:c++:使用std的多线程

本文作者:Yehuohanxing

发布时间:2018-01-25, 10:26:09

最后更新:2018-04-03, 23:26:42

原始链接:http://yehuohan.github.io/2018/01/25/Gist/c&c++/c-使用std的多线程/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录