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#include 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