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函数等待新线程执行完毕。