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

相关推荐

一面,20min左右。先问了点基本信息,成绩怎么样,考研保研,有无各种奖项。随后主要问项目经历和实习经历,但是没有深入技术细节,主要围绕怎么做?为什么做?有什么价值?来提问。-二面50min左右。问研究生阶段课题,问实习和项目经历,随后开始问八股:操作系统:1.了解缓存吗?缓存主要是为了解决什么问题?什么数据会存放在缓存中呢?为什么用多级缓存?2.介绍下进程和线程?怎样保证线程安全?为什么会产生死锁?计网:3.介绍下三次握手和四次挥手。为什么四次挥手?TCP连接怎么保证数据安全传输?4.了解Http吗?和Https之间的区别是什么?那Https加密方式了解吗?一次Http传输包含哪些过程?C++:5.了解模板吗?主要是用来做什么?6.动态多态是怎么实现的?基类和派生类都会有虚函数表吗?八股问的不多,相对也并不深。之后有一道手撕:给定一个数组,找出其中两个不相邻的数的最大差值,并返回其下标。题是口述的,讲述自己思路就行,我一开始给了个双指针的思路,面试官说不太明白,于是打开IDE自己写了下,面试官说应该从动态规划的角度去考虑。---终面,30min左右。主要问课题,进度怎么样?有没有成果产出?成绩怎么样?有没有什么含金量很高的奖项?家是哪儿的?职业规划是什么?是独生子吗?职业规划有和父母沟通过吗?随后跟一面一样拷打实习经历和项目经历,问自己认为最有含金量的经历是哪一段,随后进行深入提问。八股就一个问题:如果在一个进程中使用new申请了一段内存,没有释放会怎么样?那编译阶段会报错吗?如果不报错在运行阶段会怎么样?怎样能避免出现这个问题?有没有用过相关工具去解决这个问题?-心理测评。不限学历!不限专业!注意岗位特点:专业不限岗位注意多介绍自己个人经验合综合素质,多围绕实习和岗位工作内容来展开,岗位写的xx专业优先建议把项目和大赛经验发在重点介绍【TP-Link联洲】2025届提前批校招正式启动✅关于联洲3大体系:研发、制造、营销41家海外销售公司、产品远销170+国家和米哈游地区2000+产品热销全球✅工作地点:深圳、上海、成都、海外(欧洲、北美、亚太、南美、中东非)✅投递通道:https://career.tplinkglobal.com/campus/jobs?shareId=ac94514e-9607-43c0-8fc7-001a7c7d72b8&amp;amp;amp;shareSource=2推荐码:EVB2T2使用内推码简历优先筛选,有任何问题包括进度查询可以私信我,内推后在评论区留言【姓名缩写+岗位】,方便捞人和确认投递状态
TP-Link联洲国际
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
牛客网
牛客企业服务