Linux的学习之路:21、线程(1)

本文介绍了Linux中的线程概念,包括线程的定义、创建方法(如pthread_create),以及线程的优点(高效切换和资源占用低)和缺点(性能损失、健壮性降低)。文章还讨论了线程的异常处理和实际应用场景,强调了进程与线程的区别和联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

本章说一下线程

目录

摘要:

一、回忆一下

二、如何理解线程

三、命令行看线程

四、利用函数进行使用

五、本章总结

1、线程的优点

2、线程的缺点

3、线程的异常

4、线程的用途


一、回忆一下

1、exe就是一个文件

2、我们的可执行程序本来就是按照空间方式进行编译的

3、可执行程序,其实就是按照区域也就是已经被划分成了以4kb为单位的大小

六字真言:先描述在组织,如下图就是先描述在组织,产生的stack_struct的结构体,这个存着虚拟地址,然后虚拟地址存着用户级页表,然后页表里面存着物理内存,然后物理内存存在磁盘内。

 那么数据如果很多该怎么存入呢?如下图在32位环境下,是通过前面十位0就是指向一级页表,然后中间十位指向二级页表,其中的一级页表也指向二级页表,然后两个都一样就是二级页表,然后二级页表指向物理内存,这时找到了变量存在的地址,然后后面12位就是指向物理内存的偏移地址,所以就可以得出

page start addr + 页内偏移

通过一级页表+二级页表找到对应的页,再通过最后12位找到准确的地址,也就是偏移量

二、如何理解线程

通过一定的技术手段,将当前进程的资源,以一定的方式划给不用的task_struct,不去申请地址空间,需要什么资源就直接向主线程要,线程在内部执行,是OS调度的基本单位

这个是Linux特有的方案:没有独立的结构体

在内核视角中:

进程:承担分配系统资源的基本实体

用户视角:该进程对应的代码+资源

内部只有一个执行流的进程,但是内部具有各个执行的进程就是线程

在CPU视角中:CPU其实不怎么关心是进程还是线程这样的概念,只认识tack_struct,CPU调度的基本单位就是“线程”

在Linux下的进程:统一称之为轻量级进程,Linux并不能直接给我们提供线程的接口,只能提位轻量级进程的接口,在用户层实现了一套用户层多线程方案,以库的方式提供给用户进行使用,pathred线程库——原生线程库

三、命令行看线程

如下图利用man手册进行查看指令,pthread_create这个函数就是创建一个线程,他的参数就是下面四个

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值