在Unix系統中,pthread_create函數用于創建一個新的線程。其聲明如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
參數說明:
返回值:
使用pthread_create函數時,需要提供一個線程函數作為start_routine的實現,該函數的原型如下:
void* thread_func(void* arg);
其中,arg參數為傳遞給線程函數的參數。線程函數執行完后,可以通過返回一個指針來傳遞結果給主線程。可以使用pthread_exit函數來終止線程的執行。
示例代碼如下:
#include <stdio.h> #include <pthread.h>
void* thread_func(void* arg) { int* num = (int*)arg; printf(“Thread: %d\n”, *num); pthread_exit(NULL); }
int main() { pthread_t thread_id; int num = 10;
pthread_create(&thread_id, NULL, thread_func, &num);
// 等待新線程結束
pthread_join(thread_id, NULL);
return 0;
}
本示例中,創建了一個新線程,新線程執行thread_func函數,并傳遞了一個整數參數。在thread_func函數中,將參數強制轉換為整數指針,并打印出來。主線程使用pthread_join函數等待新線程結束執行。