04LinuxC线程学习之pthread_create创建线程

2023-11-02

1 pthread_self函数

pthread_t pthread_self(void);	
/*
	功能:获取线程ID。其作用对应进程中 getpid() 函数。
	返回值:成功:0;	失败:无!
	两个进程间,线程ID允许相同。
*/

2 pthread_create函数

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
/*
	功能:创建一个新线程。其作用,对应进程中fork() 函数。
	返回值:成功:0;	失败:错误号	-----Linux环境下,所有线程特点,失败均直接返回错误号。
	参1:out,线程id。
	参2:线程属性,一般传NULL取默认属性。
	参3:回调函数指针。该函数运行结束,则线程结束。其它线程可以调用pthread_join得到start_routine的返回值,类似于父进程调用wait(2)得到子进程的退出状态。
	参4:回调函数的参数。
*/

3 注意

  • 1)由于pthread_create的错误码不保存在errno中,因此不能直接用perror(3)打印错误信息,可以先用strerror(3)把错误码转换成错误信息再打印。如果任意一个线程调用了exit或_exit,则整个进程的所有线程都终止;并且main函数return也相当于调用exit,所有子线程将退出,并且是一种危险行为(因为子线程使用的变量已经被释放),而其它线程调用return进程不终止,只是退出当前子线程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

04LinuxC线程学习之pthread_create创建线程 的相关文章

随机推荐

  • 反向代理服务器的工作原理

    反向代理服务器的工作原理 代理服务器按照其使用方式和作用 分为正向代理服务器 反向代理服务器和透明代理服务器 正向代理要求客户端自己设置代理服务器的地址 反向代理则设置在服务器端 因而客户端无须任何设置 透明代理只能设置在网关上 由于反向代
  • electron-updater 报错 Cannot find module ‘debug‘

    使用 electron updater 更新 electron 应用 打完包安装启动出现这种报错 Cannot find module debug Cannot find module builder util runtime 项目依赖 e
  • MySQL 5.6 关键字和保留字(Keywords and Reserved Words)

    注 以下均为本人个人整理 理解 仅供参考 谢谢 A ACCESSIBLE R ACTION ADD R AFTER AGAINST AGGREGATE ALGORITHM ALL R ALTER R ANALYSE added in 5 6
  • Element的Message提示如何多次点击只出现一次.(ts和js改写)

    问题描述 不填账号密码多次点击登录按钮时 提示信息会布满屏幕中线 Element的Message提示是点击一次触发一次的 要是一直点 会一直弹出 影响体验 element ui中的message在实际使用过程中很多时候会遇到 相同的mess
  • C语言程序——求两个整数的和

    为学日益 为道日损 文章目录 前言 一 程序介绍 二 程序实现 1 技术要点 2 关键代码分析 总结 前言 C语言具有三大特点 可移植性 广泛性 简洁性 使用的电脑操作系统是win7 软件有编译器Turbo C2 模拟器DOSBOX 编辑软
  • Android 广播发送流程分析

    在上一篇文章中Android 广播阻塞 延迟问题分析方法讲了广播阻塞的分析方法 但是分析完这个问题 自己还是有一些疑问 广播为啥会阻塞呢 发送给接收器就行了 为啥还要等着接收器处理完才处理下一个 由普通的后台广播改为前台广播后 为啥处理的会
  • 实现Java后端数据校验--@Validated分组验证和嵌套验证

    最近在使用中遇到了一种情况 如果是保存按钮 保存内容的表单中的某些字段 如果填了 则不能超过50个字符 没填的话则跳过验证 如果是提交按钮 则必须校验不能为空 且也不能超过50个字符 这个需求需要我进行分组校验 且因为数据结构的关系需要嵌套
  • 36_Pandas获取行数,列数和元素总数(大小)

    36 Pandas获取行数 列数和元素总数 大小 如何获取pandas DataFrame和pandas Series的行数 列数和总元素 大小 pandas DataFrame 显示行数 列数等 df info 获取行数 len df 获
  • Pytorch GPU模型推理时间探讨

    前言 最近对pytorch的模型推理 inference 时间产生了兴趣 于是想着写一个小程序来观察一下现象 遂以此文记之 实验配置 主要思路 创建多个不同规格的模型 每个模型只有一个简单的卷积层 以卷积的各种不同参数作为模型的区别 以随机
  • C++面向对象的三大特性

    C 三大特性是 封装 继承 多态 一 概念和优点 封装 encapsulation 封装就是将抽象得到的数据和行为 或功能 相结合 形成一个有机的整体 也就是将数据与操作数据的源代码进行有机的结合 形成 类 其中数据和函数都是类的成员 封装
  • 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中...

    Oracle的反向工程就是指将Oracle中的数据库 当然也可以是SQL Server中的数据库导入到PD中 这个需要建立一个数据库的链接 然后进行逆向工程的操作 第一步 建立数据库的链接 PowerDesigner建立与数据库的连接 以便
  • redis启动时闪退,史上最详细的解决办法,看完还解决不了来找我

    redis启动时闪退 解决办法如下 1 Windows r 进入cmd 2 cd进入到redis server exe所在文件夹下 3 写入redis server exe redis windows conf 回车 4 如出现如图所示错误
  • SQLyog详细使用教程

    SQLyog是一款功能强大的mysql数据库管理工具 这篇文章为大家详细介绍SQLyog的使用方法 SQLyog使用教程 1 如何创建数据库 第一步 右键根结点 gt 创建数据库 第二步 填写数据库名称 选择默认字符集等后点确定即可 2 如
  • 【高效】开发过程中常见配置(pip、npm、maven、git等各种国内源)

    文章目录 nvm pip npm 配置taobao镜像 解决fatal unable to connect to git github com问题 解决fatal unable to connect to github com问题 mave
  • 【AI绘画】Midjourney和Stable Diffusion教程

    之前我向大家介绍了这两个AI绘画网站 Stable Diffusion介绍 https mp csdn net mp blog creation editor 130059509 Midjourney介绍 https mp csdn net
  • 半桥LLC数字控制

    LLC结构可分为对称半桥和非对称半桥 本文主要涉及对称半桥的控制方法及其实现方式 非对称和对称半桥LLC结构如下图1 1和图1 2 图1 1 非对称半桥LLC 图1 2 对称半桥LLC 对称半桥LLC和非对称半桥LLC没有本质的差别 对称半
  • 疫情数据可视化

    国内疫情数据可视化 文章目录 国内疫情数据可视化 一 获取疫情数据并写入数据库 获取数据以及写入数据库代码 分析数据所在url 二 数据的读取及可视化 三 结果展示 四 实现实时监控 五 总结 一 获取疫情数据并写入数据库 对于疫情可视化来
  • iOS深入学习之Weak关键字介绍

    前言 从大二的开始接触OC就用到了weak属性修饰词 但是当时只是知道如何去用这个关键字 防止循环引用 根本没有深入地去了解它 在刚来北京的时候面试过程中也常常考到该知识点 大点的公司可能会问它如何使用 如何在对象销毁后将对象置nil 小点
  • redis sentinel 主从切换(failover)解决方案,详细配置

    redis sentinel 主从切换 failover 解决方案 详细配置 作者 oyhk 2013 10 10 23 55 49 0 评论 629浏览 Redis源码学习笔记 主从复制 博客分类 Redis redis c Redis源
  • 04LinuxC线程学习之pthread_create创建线程

    1 pthread self函数 pthread t pthread self void 功能 获取线程ID 其作用对应进程中 getpid 函数 返回值 成功 0 失败 无 两个进程间 线程ID允许相同 2 pthread create函