pthread可以创建线程
头文件

#include<pthread.h>

pthread_t tid:声明了所创建线程的标识符
pthread_attr_t attr:表示线程的属性
pthread_attr_init(&attr):设置线程的属性
pthread_create:创建一个独立线程
函数声明
int pthread_create(pthread_t* restrict tidp,const pthread_attr_t* restrict_attr,void* (start_rtn)(void),void *restrict arg);

  • tidp:新创建的线程的标识符
  • attr:线程属性,一般设置为NULL
  • satrt_rtn:新创线程从此开始运行
  • arg:start_rtn函数的参数
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#define NUM_THREADS 4
void* threadfunc(void *r) {printf("This is a pthread %d.\n", *(int*)r);pthread_exit(0);
}int main(void) {pthread_t workers[NUM_THREADS];
int i, ret;
int data[NUM_THREAD] = {1,2,3,4};for (i = 0; i < NUM_THREADS; ++i){ret = pthread_create(&workers[i], NULL, threadfunc, (void*)&data[i]);
if (ret != 0){printf("Create pthread %d error!\n", i);return 1;
}
}
printf("This is the main process.\n");for (i = 0; i < NUM_THREADS; ++i)pthread_join(workers[i], NULL);
return 0;
}

pthread创建线程相关推荐

  1. Pthread创建线程后必须使用join或detach释放线程资源

    这两天在看Pthread 资料的时候,无意中看到这样一句话(man pthread_detach): Either pthread_join(3) or pthread_detach() should ...

  2. clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结(转)

    进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...

  3. clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结

    进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...

  4. C语言用pthread.h创建线程

    C语言的线程库 pthread.h的API pthread.h的示例 C语言的线程库 在Linux系统上,可使用pthread.h的API创建线程.比如pthread_create(). pthrea ...

  5. Linux创建线程时 内存分配的那些事

    文章目录 问题描述 问题分析 针对问题1 的猜测: 针对问题2 的猜测: 原理追踪 总结 问题描述 事情开始于一段内存问题,通过gperf工具抓取进程运行过程中的内存占用情况. 分析结果时发现一个有趣 ...

  6. 【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )

    文章目录 I . JNI 线程创建 II . 线程执行函数 III . 线程方法获取 Java 对象 IV . 线程方法获取 JNIEnv V . JNI 线程 完整代码示例 I . JNI 线程创建 ...

  7. Linux学习之系统编程篇:创建线程函数

    所有线程函数相同点: (1)函数调用成功返回 0,失败返回错误号(但注意:不能用 perror 打印). (2) 头文件:#include <pthread.h> 编译时候需要使用线程库, ...

  8. linux怎么创建5个线程,简明Linux系统编程_5_创建线程(总第238期)

    这节课为大家讲解一个进程如何创建线程,创建线程的函数pthread_create(),如果通过手册查找该函数的作用,参数和返回值,并通过代码运行来理解进程和线程之间的关系. 有如下几点需要着重说明一下 ...

  9. pthread_create()创建线程最大个数

    线程应用程序最常见导致创建线程失败的原因是线程栈大小的设置.创建一个新的线程,默认情况下系统为线程栈预留了2MB的寻址空间.线程栈起始于进程虚拟 内存的高端地址,并向虚拟内存底端地址方向扩展.取决于线 ...

  10. linux c之使用pthread_create创建线程pthread_join等待线程和pthread_exit终止线程总结

    1.介绍API 1.pthread_create函数 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int p ...

最新文章

  1. Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...
  2. python3.6使用pygal模块不具交互性,图片不能显示数据
  3. Sublime和Webstorm新建代码块
  4. js 字符串转成货币格式, js转货币
  5. 什么是企业的固定资产全寿命周期管理
  6. 如何在运行时打印出 SAP Spartacus 配置(config)信息
  7. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)
  8. 研究生毕业之际一些闲聊
  9. nodejs路由信息
  10. Android Studio系列教程六--Gradle多渠道打包
  11. 在vue的项目中引入swiper插件
  12. 15 个最佳开源设计工具
  13. javaFx(7)文本阅读器
  14. python进阶day6
  15. 全网最全Python操作Excel教程,赶紧收藏
  16. Pandas 数据分析-第八章(排序sort_index())
  17. Unity3D: 做自己的卡牌游戏 (一)
  18. 今年生男孩取什么名好的超简单起名方法
  19. hashmap中的key是有序的么_Java中的HashMap,为什么输出竟然是有序的
  20. Python基础----字符串填充的几种方法

热门文章

  1. express搭建的nodejs项目使用webpack进行打包
  2. 电驴搜索服务器正在连接,电驴连接不上服务器怎么解决?
  3. ChinaITLab-Linux工程师培训课程笔记5
  4. 计算机软件著作权登记
  5. 突破速达系列软件科目级长的限制
  6. Linux-tftp、tftpd-pha安装、使用、配置教程
  7. [LAMP兄弟连李明老师讲Linux].课件Shell编程
  8. python 3d大数据可视化软件_5个最受欢迎的大数据可视化工具!
  9. MacOS版/Windows桌面版微信多开双开教程技巧以及双开代码
  10. 简历中的“项目经验”该怎么写?