Linux多线程开发--线程概念描述

线程基本概念:

LWP : light weight process 轻量级进程,本质仍是线程(在linux环境下,因为本身linux进程管理就很完善了,与windows环境下,两者线程原理完全不一样)

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

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

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

Linux下: 线程:最小的执行单位。

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

如图所示简单的PCB构成:

Linux内核线程实现原理:

1. LWP创建原理跟进程低层实现是一样的,pthread_creat 跟fork 低层都是用clone创建,但是各自拥有各自的PCB。

2. 从内核看进程跟线程是一样的,虽然PCB不同,但是PCB指向的内存资源的三级页表是相同的。

3. 进程可以蜕变成线程。

4. 线程可以看做是寄存器和栈的集合

5.为什么说多线程效率高呢,如下图,当一个进程,从一个进程被分成五个线程之后,CPU轮转调度的时候,加上右边 两个单线程进程,一共七个调度单位,那么CPU调度第一个进程的概率会大大增加,则此时第一个进程获取CPU的时间也会增加,从而提高了它的执行效率。

三级映射:

三级映射又叫三级页表。

示意图如下:

a.out的线程的PCB都指向同一块页目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值