📅  最后修改于: 2023-12-03 15:18:43.352000             🧑  作者: Mango
pthread_create
是 C 编程语言中用于创建线程的函数。它允许程序员可以在单个程序中并发地执行多个代码路径。使用 pthread_create
,程序员可以创建多个线程并将它们分配给不同的任务。
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
thread
:指向线程标识符的指针,新创建的线程将存储在这里;attr
:线程属性对象的指针,可以控制线程的细节行为。通常使用默认属性 NULL
;start_routine
:指向将被线程执行的函数的指针;arg
:传递给线程函数的参数。#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_hello(void *thread_id) {
long tid = (long) thread_id;
printf("Hello from thread %ld\n", tid);
pthread_exit(NULL);
}
int main() {
pthread_t threads[5];
int i;
for (i = 0; i < 5; i++) {
int rc = pthread_create(&threads[i], NULL, print_hello, (void *) i);
if (rc) {
printf("Error: unable to create thread, %d\n", rc);
exit(-1);
}
}
pthread_exit(NULL);
}
以上示例中,我们创建了一个创建 5 个线程的程序,每个线程输出 "Hello from thread [tid]"。使用 pthread_create
函数创建线程,并将线程 ID 存储到数组中。然后,在 print_hello
函数中,线程打印对应的线程 ID。最后,使用 pthread_exit
函数退出主线程。