<p id="g32nn"></p>
    1. <acronym id="g32nn"><strong id="g32nn"></strong></acronym>
      <pre id="g32nn"></pre>

      <table id="g32nn"><option id="g32nn"></option></table>
          當前位置:首頁 > IT技術 > 編程語言 > 正文

          一個初級的線程函數
          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/

          97久久久久人妻精品专区_国产成人精品视频导航_国产色诱视频在线播放网站_97午夜理论电影影院
          <p id="g32nn"></p>
          1. <acronym id="g32nn"><strong id="g32nn"></strong></acronym>
            <pre id="g32nn"></pre>

            <table id="g32nn"><option id="g32nn"></option></table>