关注
线程上下文切换指CPU从一个进程或线程切换到另一个进程或线程的过程,系统必须保存当前进程的状态并加载另一个进程的状态的过程,状态就是上下文,具体指CPU寄存器状态(CPU寄存器中内容)、程序计数器(指向当前执行指令的地址)、栈指针(指向当前线程栈的顶端)、线程私有存储(线程专有的数据存储区域),存储在线程栈和线程堆上,栈是私有的,不能被其他线程访问,堆是全局内存池,所有线程共享同一个堆。
协程是更轻量级的线程,具有协作式调度(线程是抢占式调度,协程是协作式调度,即协程自行决定何时让出控制权)、低开销(只需保存和恢复商量的上下文信息,不涉及内核态的切换,低开销)、栈帧管理(协程可以保留函数调用栈的状态,使得暂停和恢复执行变得更加高效),C++中Boost.Coroutine提供了协程的功能。
编写和实现多源程序:1、编写源代码:将程序的不同部分写入多个源文件和头文件,每个源文件对应一个功能模块,头文件用于声明函数和类;2、编译每个源文件,将每个源文件编译为目标文件(object file),目标文件是机器代码的中间表示,不能直接运行;3、链接目标文件:将所有目标文件链接在一起,生成一个可执行文件,使用g++链接;4、运行可执行文件:生成的可执行文件在命令行运行;5、使用Makefile简化流程
预编译:编译过程的第一个阶段,主要任务是处理所有的预处理指令(include、define、if、pragma等),预编译器将这些指令展开,生成一个纯粹的C++源文件。
include指令将头文件或其他文件内容包含到当前文件中,<>包含标准库头文件或系统头文件,编译器会在标准库路径查找文件,“”用于包含用户自定义头文件,编译器会先在当前目录查找,未找到再去标准库路径查找。
链接:将编译生成的多个目标文件和库文件结合在一起,生成一个可执行文件或共享库的过程,负责解决符号引用,将各个目标文件的符号(函数、变量等)正确地关联起来。
查看原帖
1 评论
相关推荐
牛客30461999...:写的真好啊,文学功底好。有句话感触很深,AI的确提效了,按理说同样的工作内容,如果有AI的帮助,完全不用加班就能搞定。但现在加班现象依旧普遍,这是由社会观念、制度决定的,社会以生产最大为导向,AI节省的时间、创造的价值流向资本而不是打工人,同时有了AI竞争更大了,对工作的要求、速度要求都上升了。 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
123821次浏览 2078人参与
# 实习简历求拷打 #
16583次浏览 194人参与
# 作业帮求职进展汇总 #
83978次浏览 554人参与
# 秋招被挂春招仍然能投的公司 #
7774次浏览 108人参与
# 实习要如何选择和准备? #
128543次浏览 1486人参与
# 外包能不能当跳板? #
54282次浏览 256人参与
# 诺瓦星云求职进展汇总 #
233514次浏览 1736人参与
# mt对你说过最有启发的一句话 #
39006次浏览 454人参与
# 公司情报交流地 #
126685次浏览 1227人参与
# 为了找工作你花了哪些钱? #
74885次浏览 361人参与
# 你觉得机械有必要实习吗 #
69855次浏览 485人参与
# 投格力的你,拿到offer了吗? #
153433次浏览 822人参与
# 一起聊美团 #
307653次浏览 1767人参与
# 什么是优秀的实习经历 #
9388次浏览 226人参与
# 摸鱼被leader发现了怎么办 #
103838次浏览 659人参与
# 京东开奖 #
632068次浏览 3180人参与
# 秋招特别不鸣谢 #
16602次浏览 186人参与
# 考研失败就一定是坏事吗? #
202620次浏览 1389人参与
# 选实习,你更看重哪方面? #
15304次浏览 230人参与
# 安克创新求职进展汇总 #
62475次浏览 541人参与
