<kbd id="m0mea"><tt id="m0mea"></tt></kbd>
  • <s id="m0mea"><code id="m0mea"></code></s>
    <tbody id="m0mea"><u id="m0mea"></u></tbody><rt id="m0mea"><menu id="m0mea"></menu></rt>
  • <legend id="m0mea"><input id="m0mea"></input></legend>

    一個初級的線程函數
    2022-08-29 23:58:48

    一個初級的線程函數

    創建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

    ?

    本文摘自 :https://www.cnblogs.com/


    更多科技新聞 ......

    日本成人三级A片
    <kbd id="m0mea"><tt id="m0mea"></tt></kbd>
  • <s id="m0mea"><code id="m0mea"></code></s>
    <tbody id="m0mea"><u id="m0mea"></u></tbody><rt id="m0mea"><menu id="m0mea"></menu></rt>
  • <legend id="m0mea"><input id="m0mea"></input></legend>