线程共享哪些进程资源?独占哪些资源?

线程独占的资源

1. 线程运行的本质就是函数的执行,函数运行时的信息保存在栈帧中,包括函数的返回值、使用的局部变量、寄存器信息等,因此每个进程都有自己独立的、私有的栈区

2. 程序计数器、函数运行使用的寄存器组的值也是线程私有的

3. 每个线程用户独立的线程ID、独立的调度优先级、错误返回码

线程共享的资源

1. 多个线程共享进程的代码区,代码区存放的是编译后的可执行机器指令,即任何一个函数都可以放到线程中去执行

2. 多个线程共享进程的数据区,即任何一个线程都可以访问全局变量和静态变量

3. 多个线程共享进程的堆区,尽管栈区是线程的私有数据,但栈区没有添加任何保护机制,一个线程的栈区对其他线程也是可见的

 

4. 动态链接库:若一个程序是动态链接的,那么其地址空间中有一部分包含的就是动态链接库,该部分也是被多个线程共享的

5. 文件:如果程序运行时打开了一些文件,那么进程地址空间中保存了打开的文件信息,进程打开的文件也属于线程共享的资源

6. 线程共享当前工作目录、以及用户ID和组ID

参考文献

(4条消息) 线程间到底共享了哪些进程资源?_程序员资源社区的博客-CSDN博客

(4条消息) 同一进程中线程的共享资源以及独占资源_心海徐帆的博客-CSDN博客_线程独占的资源

posted @   m0_46427273  阅读(4350)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示