在C语言中,创建多线程通常需要使用POSIX线程库(pthread库)。下面是一个简单的示例,展示了如何使用pthread库创建多线程:
#include <pthread.h>
void *thread_function(void *arg);
这里的arg
参数是一个指向任意类型的指针,可以在函数内部使用。
pthread_create()
函数创建新线程。这个函数的原型如下:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
参数解释:
thread
:一个指向pthread_t
类型的指针,用于存储新线程的标识符。attr
:一个指向pthread_attr_t
类型的指针,用于设置线程属性。如果传递NULL
,则使用默认属性创建线程。start_routine
:指向线程函数的指针。arg
:传递给线程函数的参数。pthread_create()
函数创建新线程。例如,创建两个线程:pthread_t thread1, thread2;
int main() {
pthread_create(&thread1, NULL, thread_function, (void *)0);
pthread_create(&thread2, NULL, thread_function, (void *)1);
// 等待线程结束
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
return 0;
}
gcc -o my_program my_program.c -lpthread
./my_program
这样,程序就会创建两个新线程,并在其中执行thread_function
函数。