线程
m0_47211698
这个作者很懒,什么都没留下…
展开
-
线程基础
线程学习(一) 部分理论知识 一个进程的所有信息对该进程的所有线程都是共享的,包括可执行的代码,程序的全局内存和堆内存,栈以及文件描述符。但是每个线程都有自己的一组寄存器,自己的栈空间,自己的errno变量。 内存分布(个人理解) (1)静态内存分布(程序)和动态内存分布(进程,线程); (2)内存分布 |stack| 栈 :局部变量,运行时才有| |heap|堆:程序员自己分配内存,运行时才有| | .bss | 未初始化的数据段:未初始化或者初始化为0的全局变量和静态局部变量| |.data| 初始原创 2020-12-07 00:08:39 · 99 阅读 · 0 评论 -
线程间的同步和互斥
部分基本概念 1.互斥和同步 互斥:就是同一时间段内只允许一个线程访问临界资源; 同步:就是在互斥的基础上,增加了顺序; 总之,同步和互斥就是确保线程在访问变量的存储内容时候,不会访问到无效的值。 a.什么时候不需要同步? (1)原子操作 (2)全局共享变量仅仅可读 (3)变量私有 b.了解下什么叫做增量操作? (1)数据从内存单元读入寄存器 (2)寄存器内对变量进行增量操作 (3)把新的值写回内存单元 下面将介绍几种常见的用于线程同步互斥的锁方法,切记尽量避免死锁,作为一个程序员,需要在满足锁的需求下,原创 2020-12-10 00:40:17 · 217 阅读 · 1 评论