【C/C++多線程編程之三】建立pthread線程

來源:互聯網
上載者:User

多線程編程之建立pthread線程
      Pthread是 POSIX threads 的簡稱,是POSIX的線程標準          建立線程是多線程編程的第一步,理解線程建立時多線程編程的關鍵。
         1.建立Pthread線程:pthread_create()           Pthread通過線程建立函數 pthread_create()來建立一個線程。其定義如下:
           參數:           第一個參數:線程ID指標;           第二個參數:線程屬性參數;           第三個參數:線程運行函數地址;           第四個參數:運行時函數參數;           今天我們建立預設線程,不用第二和第四參數,這部分內容以後的章節會詳細講解。第一個參數是pthread_t類型指標,宏pthread_t原型是unsigned long int ,用於儲存線程的ID。在系統中,每個線程都有唯一的線程ID,用於區別和管理線程。第三個參數void * (*start_function)(void *)含義是指向返回值為void *,參數類型為void*的函數的指標,簡單講就是函數地址。
           2.pthread_create的理解:

  • 返回值:pthread_create返回一個int類型值,線程建立成功時返回0;其他值都表示建立線程發生錯誤。容易誤解為返回線程ID。
  • 第一個參數:pthread_t類型指標,實質上是將一個pthread_t變數的地址傳遞給函數,pthread_create函數將建立線程的ID寫入該pthread_t變數,便可通過該pthread_t獲得線程ID。
  • 線程建立隨即運行:pthread_create函數建立線程成功後,該線程隨即運行。
           3.pthread_create牛刀小試:
                  mian 函數運行時,系統會自動建立一個線程,稱為主線程。通過 pthread_create建立的線程,稱為子線程。程式中通過Sleep函數休眠主線程,讓子線程運行列印資訊,否則主線程return 0結束該進程,建立的子線程也隨即死亡,螢幕上將看不到子線程的輸出。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.