关注
线程上下文切换指CPU从一个进程或线程切换到另一个进程或线程的过程,系统必须保存当前进程的状态并加载另一个进程的状态的过程,状态就是上下文,具体指CPU寄存器状态(CPU寄存器中内容)、程序计数器(指向当前执行指令的地址)、栈指针(指向当前线程栈的顶端)、线程私有存储(线程专有的数据存储区域),存储在线程栈和线程堆上,栈是私有的,不能被其他线程访问,堆是全局内存池,所有线程共享同一个堆。
协程是更轻量级的线程,具有协作式调度(线程是抢占式调度,协程是协作式调度,即协程自行决定何时让出控制权)、低开销(只需保存和恢复商量的上下文信息,不涉及内核态的切换,低开销)、栈帧管理(协程可以保留函数调用栈的状态,使得暂停和恢复执行变得更加高效),C++中Boost.Coroutine提供了协程的功能。
编写和实现多源程序:1、编写源代码:将程序的不同部分写入多个源文件和头文件,每个源文件对应一个功能模块,头文件用于声明函数和类;2、编译每个源文件,将每个源文件编译为目标文件(object file),目标文件是机器代码的中间表示,不能直接运行;3、链接目标文件:将所有目标文件链接在一起,生成一个可执行文件,使用g++链接;4、运行可执行文件:生成的可执行文件在命令行运行;5、使用Makefile简化流程
预编译:编译过程的第一个阶段,主要任务是处理所有的预处理指令(include、define、if、pragma等),预编译器将这些指令展开,生成一个纯粹的C++源文件。
include指令将头文件或其他文件内容包含到当前文件中,<>包含标准库头文件或系统头文件,编译器会在标准库路径查找文件,“”用于包含用户自定义头文件,编译器会先在当前目录查找,未找到再去标准库路径查找。
链接:将编译生成的多个目标文件和库文件结合在一起,生成一个可执行文件或共享库的过程,负责解决符号引用,将各个目标文件的符号(函数、变量等)正确地关联起来。
查看原帖
1 评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 签完三方了,分享下我的“反向提问”技巧2.7W
- 2... 大二无实习怎么做到获得一份月薪1.5w+量化的实习和多份大厂核心部门实习的2.0W
- 3... 小红书校招技术岗增2.5倍!课代表来总结一下这场直播吧1.8W
- 4... 机械八股之材料力学笔面试难点与常考点整理1.6W
- 5... 出身寒微,却攥住鹅厂的入场券1.3W
- 6... 无良二房东受死吧!5411
- 7... 滴滴后端oc面经总结 Java人拿到Go的云原生意向3897
- 8... 9.15b站笔试3869
- 9... 能做到吗?字节抖音电商秋招记录3267
- 10... 得物Java后端一面3166
正在热议
更多
# 秋招报数:你投了多少家公司? #
15250次浏览 143人参与
# 我的租房踩坑经历 #
166246次浏览 1119人参与
# 小红书校招直播来了 #
78465次浏览 463人参与
# 上班摸鱼,你都在干些什么? #
3191次浏览 62人参与
# 深信服求职进展汇总 #
221104次浏览 1749人参与
# 秋招的嫡长offer #
13709次浏览 135人参与
# 你面试被问到过哪些不会的问题? #
8898次浏览 385人参与
# 电网笔面经互助 #
44942次浏览 427人参与
# 考研对你找工作产生了哪些影响? #
39801次浏览 226人参与
# 为什么国企只招应届生 #
196729次浏览 1209人参与
# 职场破冰,你们都聊什么? #
1642次浏览 37人参与
# 聊聊这家公司值得去吗 #
537671次浏览 3585人参与
# 为了求职,我做过的疯狂伪装 #
2850次浏览 49人参与
# 机械笔面试考察这些知识点 #
8935次浏览 89人参与
# 当你面对裁员会如何? #
303765次浏览 2559人参与
# 我的第一份实习怎么找的 #
152534次浏览 1473人参与
# 实习生应该准时下班吗 #
278847次浏览 1560人参与
# 你觉得早上几点上班合适? #
80836次浏览 328人参与
# 嵌入式岗知多少 #
52739次浏览 522人参与
# 实习要如何选择和准备? #
112973次浏览 1429人参与
# 秋招最大的收获是什么? #
42689次浏览 348人参与