linux下的线程

一、pthread 线程

线程可以说是轻量级的进程,一般是一个进程中的多个任务。

进程:系统中的最小资源分配单元

线程:系统中最小执行单元

二、线程的特征

1、共享资源

2、效率高30%

3.使用第三方库(头文件加pthread.h 编译时添加 -lpthread)

三、线程的缺点

1、稳定性差

2、gdb调试比较麻烦

四、进程和线程的区别

1、线程比进程多了共享资源

2、线程只具有一部分的私有资源,进程间只有私有资源

3、进程空间独立,不能直接通信

线程可以共享空间,可以直接通信。

五、线程的设计框架

创建 ----> 空间操作 ------> 资源回收

六、相关函数

pthread_create(&tid,NULL,th,NULL)

创建线程:第一个参数是线程id

第二个参数是线程属性,默认是NULL属性

第三个参数是指向指针函数的函数指针,本质上就是函数的名字(回调函数)(执行空间)

第四个参数是函调函数的参数

pthread_self()

获取当前线程的线程id

pthread_exit(void *retval)

子线程自行退出,退出时返回参数中的状态

pthread_cancle(id)

结束一个进程,参数是要结束的线程的id号

pthread_join(id,void **retval)

将指定线程回收,具有阻塞功能。

第二个参数,就是线程结束时返回的状态,可以说就是pthread_exit()中参数的值

pthread_detach(id)

设置分离属性

相关推荐
AC赳赳老秦2 分钟前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
钱栈up7 分钟前
mvn compile 卡死在 javac 阶段:一次类型不匹配的排查与修复
java·开发语言
迅猛龙办公室8 分钟前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
杨丰玮41824 分钟前
C语言基础知识(一)————各类符号的含义与输入输出库(stdio)
c语言·开发语言
程序猿编码1 小时前
工业视觉多任务方案:可编程梯度信息视觉框架,训练评估 + C++ 部署完整实战
开发语言·c++·视觉·推理引擎
zhangrelay1 小时前
机械臂末端规划智能模型的误区演示
linux·笔记·学习·ubuntu·ros2
水饺编程1 小时前
第1章,了解乌班图环境,使用浏览器和邮箱
c语言·汇编·ubuntu
言乐62 小时前
Python实现语音审核模型
开发语言·python·django·virtualenv·pygame
朝朝辞暮i2 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
SHARK_pssm3 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记