41.线程封装与互斥

lesson31

为什么栈加栈大小 malloc是堆向上增长而 栈向下增长,起始地址是最上面的高地址。;

看代码这块testthread,自己都能调用clone,那库当然可以封装

mmap

可以自己用,将物理地址映射到虚拟地址返回,也可以把相同这块内存映射到另一个进程然后返回,或者将磁盘的内容存到物理内存,那么以后就不需要fd,只需要用虚拟地址就可以访问磁盘文件,,可以自己申请空间,可以进程间通信也可以文件映射

线程执行代码区我们指定的代码,用的参数占结构啥的是共享区的

看课件附录6-2

看代码,独立的栈其实也能访问,实际上每一个线程 都能访问另一个线程内容栈,因为资源都是共享,原则上只要不拿指针乱指,每个线程的站结构只有自己知道,所以说站结构是独占的。


看代码,线程封装

可以提前分离之后分离,不管提前之后,只要被分离了就return,如果已经运行了,直接调用pthread_detach主动分离,如果没有运行直接把标志位置一,

因为在start后面就会判断,所以从今往后创建线程时候,他自己就可以 detach,只设置标记位,再去创建就被分离了,

看外面的threadcc代码,资源共享不会写时拷贝

加了pthread之后这个变量就不会在已初始化数据段定义了,谁用会把这个变量在线程局部存储里存一份。

setname_up其实就是写进进程的局部存储,get也需要tid,因为都需要局部存储的内容


线程的同步与互斥

看代码

相关推荐
会编程的吕洞宾7 分钟前
LangChain4j 流式输出实战:让 AI 回复像打字机一样逐字显示
java·开发语言·人工智能·后端
无足鸟ICT13 分钟前
【RHCA+】reboot命令(重启)
linux·运维·服务器·1024程序员节
曹牧20 分钟前
JDK重定向目录
java·开发语言
郑州光合科技余经理22 分钟前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
2601_962885721 小时前
如何用 Python 计算溃疡指数(Ulcer Index)?
开发语言·python
DYWorker0011 小时前
第1课:基于正点原子RK3568开发板读懂Linux内核
linux·运维·网络
kiracrimson1 小时前
string 容器:从 C 字符串到会自己扩容的类
开发语言·数据结构·c++·stl
程序边界1 小时前
顶刊级论文配图全流程:用 Python 复刻 Nature/Science 风格图表
开发语言·python
普通人61 小时前
uniapp模版JS
开发语言·javascript·小程序·uni-app·1024程序员节
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avformat_open_input调用流程与实战(一)
linux·运维·ffmpeg·车载音视频·ffmpeg音视频·音视频进阶手册