pthread_create函數用于創建一個新的線程。
函數原型如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
參數說明:
thread:指向線程標識符的指針,創建成功后,線程標識符將存儲在該指針所指向的位置。
attr:指向線程屬性的指針,可以使用默認屬性,傳入NULL。
start_routine:線程啟動時執行的函數,該函數必須是以void *
為參數,返回類型為void *
的函數。
arg:傳遞給線程啟動函數的參數。
下面是一個簡單的示例代碼,展示了如何使用pthread_create函數創建一個新的線程:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *thread_function(void *arg) {
int thread_arg = *(int*)arg;
printf("Hello from thread! Argument: %d\n", thread_arg);
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int arg = 123;
int result = pthread_create(&thread, NULL, thread_function, &arg);
if (result != 0) {
printf("Error creating thread.\n");
return 1;
}
printf("Hello from main thread!\n");
pthread_join(thread, NULL);
return 0;
}
在上面的示例代碼中,創建了一個新的線程,并將參數123傳遞給線程啟動函數thread_function。主線程打印一條消息后,調用pthread_join函數等待新線程執行完畢。