多线程编程博客推荐及phread线程的深入理解
来源:互联网 发布:淘宝上解封lol账号可信 编辑:程序博客网 时间:2024/06/01 07:26
###Date:2017/10/31
转载自:
http://blog.csdn.net/lovecodeless/article/details/24468107(该博客中有详细的多线程编程的相关知识,值得深入学习一下!)
多线程编程之pthread线程深入理解
Pthread是 POSIX threads 的简称,是POSIX的线程标准。
前几篇博客已经能给你初步的多线程概念,在进一步学习线程同步等多线程核心知识之前,需要对多线程深入的理解。很多人忽略或者回避这部分内容,直接的问题是学习者无法把握多线程编程的内在原理,理解的层次太浅。
1.进程资源:
进程资源有存储资源与其他资源。其他资源包含环境变量,地址,文件等。存储资源,进程的内存分配,博客【C解析之三】C语言的内存分配具有很好的参考价值。多线程进程有所不同:
静态区:存储全局变量和静态变量
堆区:动态分配区
上述静态区,堆区以及其他资源统称为进程的共享资源。共享资源被该进程的所有线程所共享。
线程堆:线程自己维护的堆
线程栈:线程自己维护的栈
上述的线程堆,线程栈是每个线程独有的资源,线程间相互独立,不共享。当建立一个线程时,系统会为线程分配堆栈。
你可能已经发现,线程共享进程堆的同时,还自己维护一个堆栈。
2.线程私有数据:
多线程编程下,进程的全局变量通过存储于共享数据区,实现为所有线程 共用。同时,线程还可以有自己的全局变量,称为线程的私有数据。爱思考的读者可能会问,那线程的非全局变量在哪呢,别忘了非全局变量的空间在栈中哦。
3.线程消亡:
线程消亡时,线程自由的线程堆栈会被释放,归还给系统,同时线程的私有数据也会被释放。线程的共享资源,静态区,共享的进程堆以及其他资源,由于这些资源是线程间共享的,故不会随线程消亡而释放。
需要特别注意的是,线程堆与共享的进程堆之间的差异。
线程理解至此,之后的进一步学习,会有更深入的体会。
参考:
http://blog.csdn.net/Jiangweihll/article/category/2191227
http://blog.csdn.net/stpeace/article/details/43280993
阅读全文
0 0
- 多线程编程博客推荐及phread线程的深入理解
- 多线程编程 深入理解线程对象和线程
- 深入理解多线程编程
- 【C/C++多线程编程之五】pthread线程深入理解
- 多线程编程 深入理解DCL的安全性
- 深入理解Android多线程、线程同步及AsyncTask机制
- JAVA 多线程 及线程的 一些理解
- 多线程编程 深入理解JMM
- 多线程的深入理解
- 深入理解Java的线程池概念及核心方法
- 对多线程编程和线程同步机制的小理解
- 深入理解Java多线程与并发编程
- 对多线程的深入理解
- JAVA线程的深入理解
- Linux下的TCP/IP编程----线程及多线程服务端
- phread线程开发一之常用函数
- java 理解多线程及线程可见性
- java 理解多线程及线程可见性
- 微鲸成ChinaJoy 7月大展最火爆展台 牵手丝芭传媒潜进内容深海
- 解密:用人工智能“攻占”俄罗斯的爆款滤镜Prisma
- 创业社交平台「微链」首推全场景融资解决方案,助力创业者高效融资
- Java中的关键字介绍
- C# dllimport
- 多线程编程博客推荐及phread线程的深入理解
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- MFC Edit实现换行
- css3动画高级应用开发唱吧首页图片飞入效果
- C++进阶—>各类型占大小及sizeof函数
- 我们无法改变大环境,却一直在努力去更好地服务创业
- 你的创业,为什么那么怕融不到钱?
- 线上创业大赛 允许“互相伤害”
- PHP新的垃圾回收机制:Zend GC详解