pthread_create函數可以用來創建一個新的線程。它的原型如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
參數說明:
thread
:用于存儲新線程標識符的變量指針。
attr
:用于指定新線程的屬性,通常使用默認屬性,可以傳入NULL。
start_routine
:新線程將要執行的函數的指針。
arg
:傳遞給新線程的參數。
下面是一個使用pthread_create函數創建新線程的示例代碼:
#include <stdio.h>
#include <pthread.h>
void* thread_function(void* arg) {
printf("Hello from the new thread!\n");
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int result = pthread_create(&thread, NULL, thread_function, NULL);
if (result != 0) {
printf("Error creating thread: %d\n", result);
return 1;
}
printf("Hello from the main thread!\n");
pthread_join(thread, NULL); // 等待新線程執行完畢
return 0;
}
在上面的代碼中,我們定義了一個新線程函數thread_function
,它打印一條消息,然后調用pthread_exit
來退出線程。在主函數中,我們通過調用pthread_create函數來創建新線程,并傳入新線程函數的指針。然后,我們在主線程中打印另一條消息,并調用pthread_join函數來等待新線程執行完畢。
注意:在使用pthread_create函數創建新線程時,需要在編譯時鏈接pthread庫,可以使用-pthread
選項來編譯,例如:
gcc -pthread main.c -o main