一、線程簡介 線程是參與系統調度的最小單位。它被包含在進程之中,是進程中的實際運行單位。 一個進程中可以創建多個線程,多個線程實現併發運行,每個線程執行不同的任務。 每個線程都有其對應的標識,稱為線程 ID,線程 ID 使用 pthread_t 數據類型來表示。 二、線程的創建 線程是輕量級的併發執 ...
一、線程簡介
-
線程是參與系統調度的最小單位。它被包含在進程之中,是進程中的實際運行單位。
-
一個進程中可以創建多個線程,多個線程實現併發運行,每個線程執行不同的任務。
-
每個線程都有其對應的標識,稱為線程 ID,線程 ID 使用
pthread_t
數據類型來表示。
二、線程的創建
線程是輕量級的併發執行單元,通過調用Linux系統提供的pthread庫中的函數來創建和管理線程。
- 包含頭文件:
#include <pthread.h>
- 定義線程函數:
線程函數是線程實際執行的函數,可以是任何可以被調用的函數。線程函數的原型如下:
void* thread_function(void* arg);
其中arg
是傳遞給線程函數的參數,可以是任何類型的數據。線程函數的返回值為void*
類型,可以返回任何類型的數據。
- 創建線程:
創建線程需要調用pthread_create
函數。該函數的原型如下:
int pthread_create(pthread_t* thread, const pthread_attr_t* attr, void* (*start_routine)(void*), void* arg);
參數 | 類型 | 描述 |
---|---|---|
thread |
pthread_t * |
用於存儲新線程標識符的指針 |
attr |
const pthread_attr_t * |
用於指定新線程的屬性,如棧大小、調度策略等,可以為 NULL,表示使用預設屬性 |
start_routine |
void *(*)(void *) |
新線程的起始函數,需要返回 void 指針類型的結果,並且帶有一個 void 指針類型的參數 |
arg |
void * |
傳遞給新線程起始函數的參數,可以為 NULL |
返回值 | int |
0 表示成功,非 0 表示失敗,錯誤代碼保存在 errno 中 |