1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点
2014-09-25 16:21
387 查看
1线程概念
1.1什么是线程
1.1.2线程和进程的关系
1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone.
2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的
3.进程可以蜕变成线程
4.在美国人眼里,线程就是寄存器和栈
5.在Linux下,线程是最小的执行单位;进程是最小的分配资源的单位
查看LWP号(通过这个命令可以查看到线程号),命令是:
ps –eLf (其中,下面的LWP列表示的就是线程号)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/25/e9e545ccee3ec00b6e8a02f1cb26b35b)
ps –Lf pid(通过这种方式查看某个进程下的具体线程信息)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/25/663b60f917665dcc78d0f7fd62a9e817)
调度图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/25/1f2f4637dc69ae79b1de3b9fb6469737)
调度单位为线程
1.1.3.线程间可共享的资源
1.文件描述符表
2每种信号的处理方式
3当前工作目录
4用户ID和组ID
5内存地址空间
以下同样是共享的:
text 代码区
data 数据区
bss
堆
共享库 (调用共享库可以用mmap)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/25/13784aea186eebfbb6944241b2371718)
线程间共享资源
1.1.4线程间非共享资源
1.线程id
2.处理器现场和栈指针
3.独立的栈空间
4.errno变量
5.信号屏蔽字
6.调度优先级
线程优缺点
优点
提高程序的并发性
开销小,不用重新分配内存
通信和共享数据方便
缺点
线程不稳定(库函数实现不稳定)
线程调试比较困难(gdb支持不好)
线程无法使用unix经典事件,例如信号
pthread manpage
man –k pthread
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/25/2b09dae562f99c65925479fa34e17565)
安装pthread相关manpage
sudoapt-get install manpages-posix manpages-posix-dev
1线程概念
1.1什么是线程
1.1.2线程和进程的关系
1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone.
2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的
3.进程可以蜕变成线程
4.在美国人眼里,线程就是寄存器和栈
5.在Linux下,线程是最小的执行单位;进程是最小的分配资源的单位
查看LWP号(通过这个命令可以查看到线程号),命令是:
ps –eLf (其中,下面的LWP列表示的就是线程号)
ps –Lf pid(通过这种方式查看某个进程下的具体线程信息)
调度图
调度单位为线程
1.1.3.线程间可共享的资源
1.文件描述符表
2每种信号的处理方式
3当前工作目录
4用户ID和组ID
5内存地址空间
以下同样是共享的:
text 代码区
data 数据区
bss
堆
共享库 (调用共享库可以用mmap)
线程间共享资源
1.1.4线程间非共享资源
1.线程id
2.处理器现场和栈指针
3.独立的栈空间
4.errno变量
5.信号屏蔽字
6.调度优先级
线程优缺点
优点
提高程序的并发性
开销小,不用重新分配内存
通信和共享数据方便
缺点
线程不稳定(库函数实现不稳定)
线程调试比较困难(gdb支持不好)
线程无法使用unix经典事件,例如信号
pthread manpage
man –k pthread
安装pthread相关manpage
sudoapt-get install manpages-posix manpages-posix-dev
相关文章推荐
- 同一进程不同线程之间的资源共享与独享
- 同一进程不同线程之间的资源共享与独享
- 进程与线程之间的资源的关系
- 进程与线程之间的资源的关系
- 同一进程中的线程究竟共享哪些资源
- 同一进程中的线程可以共享哪些资源
- 同一进程中的线程究竟共享哪些资源
- 同一进程中的线程究竟共享哪些资源
- 同一进程中的线程可以共享哪些资源
- 进程,线程,AppDomain的概念及关系
- 进程、线程、应用程序之间的关系
- 同一进程中的线程究竟共享哪些资源 [转]
- 同一进程中的线程究竟共享哪些资源
- 同一进程中的线程究竟共享哪些资源
- 进程、线程与任务程序之间的关系
- 描述进程与线程之间的关系,线程的优点和不足是什么?
- 同一进程中的线程究竟共享哪些资源
- 进程、线程与JVM之间的关系
- 细说进程、应用程序域与上下文之间的关系(一)——进程的概念与作用
- 多线程切换以及线程进程之间关系