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)

设置分离属性

相关推荐
陈布衣13 小时前
MySQL(1)_MySQL 5.7.21 Linux 安装笔记
linux·笔记·mysql
nice_lcj52013 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐13 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
武子康13 小时前
h3.c 的两个权重槽,怎样把内存压力换成 SSD 等待
c语言·人工智能·agent
bksczm14 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
春涧草茶14 小时前
慢就是快16-1协程
开发语言·前端·python
Oiiouui14 小时前
linux服务器部署Logto后端与对应前端的实现
linux·服务器·前端·后端
ITKEY_15 小时前
用 Emacs Dired 实现 em:退出文件管理器后,让终端自动切换目录
linux·服务器·emacs
wt952715 小时前
VMware 虚拟机磁盘扩容实战文档(Ubuntu 22.04 + LVM)
linux·后端
Dovis(誓平步青云)15 小时前
启元 T1 Pro 人机相声搭档:语音-触摸双通道的启元机器人节奏引擎设计
开发语言·前端·javascript·microsoft·交互