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)

设置分离属性

相关推荐
大柏怎么被偷了2 分钟前
【Linux】动静态库
linux
草莓熊Lotso2 分钟前
Linux 实战:从零实现动态进度条(含缓冲区原理与多版本优化)
linux·运维·服务器·c++·人工智能·centos·进度条
FL16238631295 小时前
[C#][winform]基于yolov8的水表读数检测与识别系统C#源码+onnx模型+评估指标曲线+精美GUI界面
开发语言·yolo·c#
cnxy1887 小时前
围棋对弈Python程序开发完整指南:步骤1 - 棋盘基础框架搭建
开发语言·python
dishugj8 小时前
【linux】Redhat 6.3系统安装zabbix-agent软件包,无法使用YUM源问题
linux·运维·zabbix
无奈笑天下8 小时前
【麒麟镜像vmtools异常排查指导书】
linux·运维·经验分享·云计算·kylin
sevenez8 小时前
Vibe Coding 实战笔记:从“修好了C坏了AB”到企业级数据库架构重构
c语言·笔记·数据库架构
程序员-周李斌8 小时前
Java 死锁
java·开发语言·后端
Xの哲學8 小时前
Linux多级时间轮:高精度定时器的艺术与科学
linux·服务器·网络·算法·边缘计算
一路往蓝-Anbo9 小时前
【第20期】延时的艺术:HAL_Delay vs vTaskDelay
c语言·数据结构·stm32·单片机·嵌入式硬件