一.线程的概念:
前面讲了进程的概念,我们知道进程为执行一个程序所分配的资源的总称,当我们运行一个软件,或者是运行一个文件的时候都是一个进程。
比如说我们运行一个QQ的时候,这个QQ就是一个进程。但是我们QQ所执行的功能有很多一个,eg:要实现接收信息,输入与发送信息,显示…等,按照一个进程的执行顺序(我们知道我们的代码是按一条一条语句来执行的)为串行执行.显然如果是这样的话我们用QQ的时候,我们要输入文字就不能看到文字,我们用一个功能的时候就不能用另一个功能。
我们要解决这个问题,可以创建多个QQ进程,从磁盘映射多个QQ文件并执行,并且让每一个QQ都执行其中的一个功能。

这样的做法虽然可以实现多个功能同时使用。但是有以下不好的地方
1.同时创建多个QQ进程所占用的资源非常多(内存,,PCB,CPU,堆,栈。。。)
2.进程间的通讯非常麻烦,每fork的一个进程都有不同的进程号。
所以我们就引入了线程。

这样做的好处还有可以提高切换效率,避免TLB和高速缓存区(cash)的高频率刷新。
同一进程中的线程共享以下资源:
1)可执行的指令(代码)
2)静态数据库(全局变量,static?)
3)进程的打开的文件描述符
4)当前目录
5)用户ID
6)用户组ID
以下为线程的私有资源
线程ID
PC和相关寄存器
堆,栈
错误号
优先级
执行状态的属性。
线程的概念以及Linux下的应用1
进程与线程:概念解析及资源共享
最新推荐文章于 2025-12-04 16:38:42 发布
2346

被折叠的 条评论
为什么被折叠?



