c语言多线程怎么创建

avatar
作者
猴君
阅读量:0

在C语言中,创建多线程通常需要使用POSIX线程库(pthread库)。下面是一个简单的示例,展示了如何使用pthread库创建多线程:

  1. 首先,需要包含pthread.h头文件。
#include <pthread.h> 
  1. 定义一个线程函数,该函数将在新线程中执行。这个函数的原型应该如下:
void *thread_function(void *arg); 

这里的arg参数是一个指向任意类型的指针,可以在函数内部使用。

  1. 在主函数中,使用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:传递给线程函数的参数。
  1. 在主函数中,调用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; } 
  1. 编译并运行程序。在编译时,需要链接pthread库,例如:
gcc -o my_program my_program.c -lpthread ./my_program 

这样,程序就会创建两个新线程,并在其中执行thread_function函数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!