c++多线程

Posted yunshouhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++多线程相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <thread>
#include <mutex>
#if _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
using namespace std;

mutex mu; //线程互斥对象

int totalNum = 20;

void thread01()

    while (totalNum > 0)
    
        mu.lock();//同步数据锁
        cout << "thread01="<<totalNum << endl;
        totalNum--;
#if _WIN32
        Sleep(100);
#else
        //1s = 1000ms
        //1ms = 1000μs
        //1μs = 1000ns
        usleep(1000*100);
#endif
        mu.unlock(); //解除锁定
    

void thread02()

    while (totalNum > 0)
    
        mu.lock();
        cout << "thread02="<<totalNum << endl;
        totalNum--;
#if _WIN32
        Sleep(100);
#else
        //1s = 1000ms
        //1ms = 1000μs
        //1μs = 1000ns
        usleep(1000*100);
#endif
        mu.unlock();
    


int main()

    thread task01(thread01);
    thread task02(thread02);
    task01.join();//主线程等待子线程执行完毕
    task02.join();//主线程等待子线程执行完毕


    //task01.detach();
    //task02.detach();
    //int n;
    //cin>>n;
    return 0;

以上是关于c++多线程的主要内容,如果未能解决你的问题,请参考以下文章

C++多线程编程

C++多线程怎么实现

C++多线程

纯 C++ 中的多线程?

C++多线程问题

C++多线程强制终止