<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      批量多進程創建

      錯誤方式:

      創建第一個線程時,該線程來不及保存namebuffer的數據就切換到主線程
      然后主線程修改namebuffer準備創建第二個線程,而導致前一個線程還未
      保存的數據被第二個線程的數據所覆蓋了,導致最后輸出多個線程的內容一樣
      且有部分線程輸出內容缺失

      #include<iostream>
      #include<unistd.h>
      #include<cassert>
      #include<vector>
      #include<pthread.h>
      using namespace std;
      //新線程,函數被多個線程調用:重入狀態
      void *thread_routine(void *args){
          string name = static_cast<const char*>(args);
          while(true){
              cout<<"my name is "<<name<<endl;
              sleep(1);
          }
          return nullptr;
        //pthread_exit(nullptr);
      }
      int main(){
          //1.創建一批線程
          vector<pthread_t> tids;
          #define NUM 10
          for(int i=0;i<NUM;i++){
              pthread_t tid;
              char namebuffer[64];
              snprintf(namebuffer,sizeof(namebuffer),"chile thread [%d]",i);
              pthread_create(&tid,nullptr,thread_routine,(void*)namebuffer);
              tids.push_back(tid);
          }
          while(true){
              // cout<<"main thread is running"<<endl;
              sleep(5);
          }
          return 0;
      }
      

      解決方案

      用一個類保存所有數據,然后傳指針,當主線程創建新的線程時,因為new出來的是一個新指針,
      所以對該指針的指向內容修改并不會影響前一個子進程的內容

      #include<iostream>
      #include<unistd.h>
      #include<cassert>
      #include<vector>
      #include<pthread.h>
      using namespace std;
      class ThreadData{
      public:
          pthread_t tid;
          char namebuffer[64];
      };
      void *func_2(void *args){
          ThreadData *td=static_cast<ThreadData*>(args);
          int cnt=100;
          while(cnt--){
              cout<<"my name is "<<td->namebuffer<<endl;
              sleep(1);
          }
          delete td;
          return nullptr;
        //pthread_exit(nullptr);
      }
      int main(){
          vector<pthread_t> tids;
          #define NUM 10
          for(int i=0;i<NUM;i++){
              ThreadData *td=new ThreadData;
              snprintf(td->namebuffer,sizeof(td->namebuffer),"chile thread [%d]",i);
              pthread_create(&(td->tid),nullptr,func_2,(void*)td);
              tids.push_back(td->tid);
          }
          //waiting thread quit
          for(int i=0;i<(int)tids.size();i++){
              //阻塞式等待
              pthread_join(tids[i],nullptr);
          }
          cout<<"all thread quit successfully"<<endl;
          while(true){
              sleep(5);
          }
          return 0;
      }
      
      posted @ 2025-11-01 11:26  xdhking  閱讀(6)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av不卡一区二区在线| 成人亚洲一区二区三区在线| 国产美女高潮流白浆视频| 久久亚洲精品人成综合网| 国产又粗又猛又爽又黄| 国产亚洲精品第一综合麻豆 | 免费人成在线观看网站| 强奷乱码中文字幕| 久久精品国产亚洲夜色av| 一本av高清一区二区三区| 国产蜜臀av在线一区在线| 国产精品午夜av福利| 国产片AV国语在线观看手机版| 亚洲第一无码AV无码专区| 中文字幕精品亚洲人成在线| 国产高清av首播原创麻豆| 国产精品v欧美精品∨日韩| 欧洲人与动牲交α欧美精品 | 国产午夜伦鲁鲁| 自拍偷拍第一区二区三区| 国产精品国产三级国快看| 国产精品亚洲mnbav网站| 国产女人18毛片水真多1| 欧洲中文字幕一区二区| 隆昌县| 一本久道久久综合狠狠躁av| 亚洲乱码日产精品一二三| 麻豆a级片| 欧美乱妇高清无乱码免费| 熟妇的奶头又大又长奶水视频| 免费人成视频在线视频电影| 曰本丰满熟妇xxxx性| 国产午夜福利小视频在线| 一区二区三区鲁丝不卡| 国产成人av免费观看| 国产自拍在线一区二区三区| 激情综合色综合啪啪开心| 91网站在线看| 国产成人亚洲精品成人区| 国偷自产一区二区三区在线视频| 中江县|