千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > c语言中如何创建线程thread_create()

c语言中如何创建线程thread_create()

来源:千锋教育
发布人:lxl
时间: 2023-06-05 11:24:00 1685935440

  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:新线程要执行的函数指针,函数返回类型为 void*,参数为 void*。

  arg:传递给新线程的参数,类型为 void*。

  pthread_create函数返回值为 0 表示成功,否则表示出错。

  下面是一个示例程序,演示如何使用 pthread_create 函数创建一个新线程,并执行一个简单函数:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *print_message(void *ptr) {
char *message = (char*) ptr;
printf("%s\n", message);
pthread_exit(NULL);
}

int main() {
pthread_t thread;
char *message = "Hello, world!";

if(pthread_create(&thread, NULL, print_message, (void*) message)) {
fprintf(stderr, "Error creating thread\n");
return 1;
}

pthread_join(thread, NULL);
return 0;
}

   在这个示例程序中:

  print_message 函数将传递给它的字符串打印到标准输出,并调用 pthread_exit 函数退出线程。

  在 main 函数中,创建一个 pthread_t 类型的变量 thread,用于存储新线程的唯一标识符。

  定义一个 char 指针变量 message,并将其指向字符串常量 "Hello, world!"。

  调用 pthread_create 函数创建一个新线程,并传递 print_message 函数指针和 message 指针作为参数。

  如果 pthread_create 函数返回值不为 0,说明创建线程失败,程序将输出错误消息并退出。

  调用 pthread_join 函数等待新线程退出。

  需要注意的是,创建的新线程会独立运行,且与主线程并行执行。在多线程程序中,需要考虑线程间的同步和互斥问题。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT