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)

设置分离属性

相关推荐
我星期八休息12 小时前
网络编程—NAT、代理服务与内网穿透
linux·服务器·网络·网络协议
Hello_Damon_Nikola12 小时前
CH573从入门到精通
c语言·开发语言·单片机·嵌入式硬件
Logintern0912 小时前
Langgraph使用MemorySaver建立有记忆的图
开发语言·windows·python
豆沙沙包?12 小时前
C++~~~vector容器(p31-P40)
开发语言·c++
RisunJan12 小时前
Linux命令-sysctl(运行时修改内核参数)
linux·网络·智能路由器
yunwei3712 小时前
eBPF 教程:使用 fsession 追踪慢速 vfs_read 调用
linux·云原生
必须会一定会13 小时前
GLM-5.3 迁移实战:强制思考、1M 上下文与官方编程基准
android·开发语言·kotlin
A_humble_scholar13 小时前
Linux 网络基础(三)下的 HTTP 核心详解:从请求响应到状态管
linux·网络·http
牛油果子哥q13 小时前
C++STL容器详解:vector/list/string底层扩容、迭代器失效终极解决、容器选型避坑
开发语言·c++·list
Albart57513 小时前
Docker Desktop最新版安装踩坑全记录(Windows_Mac_Linux)【2026 4.74.0 终版】
linux·windows·macos·docker·环境搭建·踩坑记录