Linux系统应用编程 --- 线程基本概念

1. 线程的概念

LWP: light wight process,轻量级进程,本质还是进程(在Linux环境下)

进程:独立地址空间,拥有PCB

线程:也有PCB,但没有独立的地址空间(共享)

区别:在于是否共享地址空间

Linux下:     进程:最小的执行单位

                     线程:最小分配资源单元,可看成是只有一个进程的线程

2. Linux线程实现原理

1、轻量级线程也有PCB,创建线程使用的底层函数和进程一样,都是clone

2、从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的,

3、进程可以蜕变成线程

4、线程可看做寄存器和栈的结合

5、在Linux下,线程是最小的执行单位,进程是最小的资源分配单位。

查看LWP号

ps -lf pid         查看指定进程的lwp号

ps –aux          看进程

ps –eLf           看线程

ps –Lw pid      查看某一个进程的线程有那些

firefox使用多线程的方式实现的

chrome使用多进程的方式实现的

查看某一个进程的线程 ps -Lw xxx

3. 线程共享资源

1、文件描述符表

2、每种信号的处理方式

3、当前工作目录

4、用户ID和组ID

5、内存地址空间(Text/data/bss/堆/共享库)

4. 线程非共享资源

1.线程id

2.处理器现场和栈指针(内核栈)

3.独立的栈空间(用户空间栈)

4.errno变量

5.信号屏蔽字

6.调度优先级

5. 线程优缺点

优点:

提高程序的并发性

开销小,不用重新分配内存

通信和共享数据方便

缺点:

线程不稳定(库函数实现)

线程调试比较困难(gdb支持不好)

线程无法使用unix经典事件,例如信号

 

 

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页