关注
线程上下文切换指CPU从一个进程或线程切换到另一个进程或线程的过程,系统必须保存当前进程的状态并加载另一个进程的状态的过程,状态就是上下文,具体指CPU寄存器状态(CPU寄存器中内容)、程序计数器(指向当前执行指令的地址)、栈指针(指向当前线程栈的顶端)、线程私有存储(线程专有的数据存储区域),存储在线程栈和线程堆上,栈是私有的,不能被其他线程访问,堆是全局内存池,所有线程共享同一个堆。
协程是更轻量级的线程,具有协作式调度(线程是抢占式调度,协程是协作式调度,即协程自行决定何时让出控制权)、低开销(只需保存和恢复商量的上下文信息,不涉及内核态的切换,低开销)、栈帧管理(协程可以保留函数调用栈的状态,使得暂停和恢复执行变得更加高效),C++中Boost.Coroutine提供了协程的功能。
编写和实现多源程序:1、编写源代码:将程序的不同部分写入多个源文件和头文件,每个源文件对应一个功能模块,头文件用于声明函数和类;2、编译每个源文件,将每个源文件编译为目标文件(object file),目标文件是机器代码的中间表示,不能直接运行;3、链接目标文件:将所有目标文件链接在一起,生成一个可执行文件,使用g++链接;4、运行可执行文件:生成的可执行文件在命令行运行;5、使用Makefile简化流程
预编译:编译过程的第一个阶段,主要任务是处理所有的预处理指令(include、define、if、pragma等),预编译器将这些指令展开,生成一个纯粹的C++源文件。
include指令将头文件或其他文件内容包含到当前文件中,<>包含标准库头文件或系统头文件,编译器会在标准库路径查找文件,“”用于包含用户自定义头文件,编译器会先在当前目录查找,未找到再去标准库路径查找。
链接:将编译生成的多个目标文件和库文件结合在一起,生成一个可执行文件或共享库的过程,负责解决符号引用,将各个目标文件的符号(函数、变量等)正确地关联起来。
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
05-20 13:34
门头沟学院 嵌入式软件开发 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 6月18日,我将站上法庭,正式起诉美团。我送出的每一单快件,都是我人生碎片的一部分。我会一直前进,拿回在海外SaaS失去的一切。5.9W
- 2... 研一快手后端开发,一周速通,附一二面面经1.2W
- 3... 毕业一年在回到学校的感觉真不一样1.1W
- 4... 挚文集团-陌陌笔试202506068470
- 5... 25校招 双非硕 拿下大厂🐧7880
- 6... 乡下人第一次到上海租房,隔壁sexy声音搞的我火气很大4623
- 7... 金山办公测试春招一面_珠海4213
- 8... 26学院本游戏客户端鼠鼠求职碎碎念+总结3972
- 9... 主包租房的经验总结!3940
- 10... 深入浅出秋招简历3467
正在热议
更多
# 我的实习收获 #
34478次浏览 522人参与
# 安利/避雷我的专业 #
73627次浏览 515人参与
# 实习吐槽大会 #
37865次浏览 176人参与
# 我在牛爱网找对象 #
186422次浏览 1402人参与
# 晒一晒你的工位 #
87038次浏览 309人参与
# 你后悔选择现在的专业吗 #
81927次浏览 672人参与
# 你觉得专业和学校哪个对薪资影响最大 #
58077次浏览 473人参与
# 求职遇到的搞笑事件 #
113583次浏览 772人参与
# 移动求职进展汇总 #
1683次浏览 17人参与
# 2025牛客秋招季 #
6128次浏览 193人参与
# 机械人与华为的爱恨情仇 #
113360次浏览 938人参与
# 双非能在秋招上岸吗? #
215492次浏览 1150人参与
# 我的租房踩坑经历 #
33193次浏览 336人参与
# 第一份工作应该选高薪还是热爱? #
61737次浏览 562人参与
# 26届秋招投递记录 #
4818次浏览 127人参与
# 我的国央企投递进展 #
43146次浏览 268人参与
# 穿越回高考你还会选现在的专业吗 #
24520次浏览 284人参与
# 牛友们,签完三方你在忙什么? #
95172次浏览 841人参与
# 地方国企笔面经互助 #
30013次浏览 99人参与
# 招银网络求职进展汇总 #
113332次浏览 742人参与