在Linux中,pthread_create函數用于創建一個新的線程。其語法如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
其中,參數含義如下:
thread
:用于存儲新線程的ID。attr
:線程屬性,一般設置為NULL。start_routine
:線程的入口函數,即新線程運行的起始地址。arg
:傳遞給start_routine函數的參數。下面是一個簡單的例子,展示如何使用pthread_create函數創建一個新的線程:
#include <stdio.h>
#include <pthread.h>
void *myThread(void *arg) {
int *num = (int *)arg;
printf("Thread ID: %ld, Number: %d\n", pthread_self(), *num);
return NULL;
}
int main() {
pthread_t tid;
int number = 10;
pthread_create(&tid, NULL, myThread, &number);
pthread_join(tid, NULL);
return 0;
}
在上面的例子中,首先定義了一個名為myThread的線程函數,然后在主函數main中使用pthread_create函數創建一個新的線程,并傳遞參數number給新線程。最后,使用pthread_join函數等待新線程執行完畢。
需要注意的是,使用pthread_create函數創建新線程時,需要鏈接pthread庫。可以使用如下命令編譯程序:
gcc -o myprogram myprogram.c -lpthread