线程-函数调用

本文介绍了函数调用的原理,从C语言、汇编和编译器的角度分析了函数调用过程,强调了线程调用实际上就是函数调用的并行执行。通过理解栈基址寄存器和栈顶寄存器的作用,以及编译器如何处理函数调用,为理解线程的实现打下基础。

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

引言

本专题是手动实现一个“线程”, 写这个项目的起因主要是为了为学习操作系统的人而准备的练手和巩固线程和进程调用的知识. 而这个小项目是从我所写的玩具操作系统中抽离出来再加以改善的, 所以并不乎涉及更加底层的东西, 毕竟我也不会.

前言

在讲解小项目之前要先明白什么是函数调用? 函数又是怎么实现调用并返回到调用函数的函数体中?

可能你不明白为什么线程会跟函数调用有关, 那是因为我们实现的功能只是并行的, 说白就是函数调用, 并不是并发.

小概念

并行 : 宏观上是并发, 微观是串行. 比如3(1, 2, 3行, 每行表示一个进程)个进程, 但只有一个CPU, 3个进程很快的进行来回切换, 这样我们感觉就是每个进程都在同时的运行(这是宏观感受), 其实他们是每个进程用一段时间的CPU(这个微观).

-----                   ------------                            --
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值