c/c++: 多線程編程基礎講解(一)

來源:互聯網
上載者:User

利用幾篇文章簡單記錄下c與c++多線程編程基礎入門的東西,每篇一個程式來記錄,備忘。這些章節是由淺入深組織的,賴死狗!

在注釋中講吧,佛樓米!

[cpp] view plaincopy
  1. #include <iostream>  
  2. #include <pthread.h>//標頭檔是必須的,符合posix標準使程式可移植眾多平台  
  3.   
  4. using namespace std;  
  5.   
  6. #define NUM_THREADS 5  
  7.   
  8. void* say_hello(void* args)//線程的運行函數,必須void*,沒說的表示返回通用指標、輸入通用指標  
  9. {  
  10.     cout << "hello..." << endl;  
  11. }  
  12.   
  13. int main()  
  14. {  
  15.     pthread_t tids[NUM_THREADS];//定義線程的id變數,多個變數可以聲明為數組使用  
  16.     for(int i = 0; i < NUM_THREADS; ++i)  
  17.     {  
  18.         int ret = pthread_create(&tids[i], NULL, say_hello, NULL);//參數依次是:建立的線程id,線程參數,調用函數名,傳入的函數參數  
  19.         if (ret != 0)  
  20.         {  
  21.            cout << "pthread_create error: error_code=" << ret << endl;  
  22.         }  
  23.     }  
  24.   
  25.     pthread_exit(NULL);//等各個線程退出後,進程才結束,否則進程強制結束了,線程可能還沒反應過來;  
  26. }  

編譯命令:

g++ -lpthread -o test.out test.cpp

其中調用靜態庫檔案pthread是必須的,然後運行測試,歐文!

[plain] view plaincopy
    1. [cpp@node2 pthread]$ ./ex_create  
    2. hello...  
    3. hello...  
    4. hello...  
    5. hello...  
    6. hello...  
    7. [cpp@node2 pthread]$  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.