问题
- C语言中的堆栈与进程、线程中的堆栈有什么区别?
- 线程的调度方式有哪些?
- 线程都会被哪些条件中断?
- 线程被中断之后恢复到的还是之前的线程么?
- 线程A占有CPU正在运行中,如何让线程B立即抢占?
- 线程A占有CPU不释放,如果让线程B运行?
- Modbus、RS232、CAN的区别?
- 充电桩项目和智能网关的之间的关系?
- TCP的可靠性怎么保证?
- TCP流控具体有哪些详细方式,不是流控的原理?
- TCP的报文数量多且小,怎么保证传输效率、实时性?
- TLS协议简介、运行与哪一层、密钥交换方式?
- MQTT的特点、应用场景、运行于那一层协议?
- MQTT的公钥管理方式(感觉面试官不太懂)
- MQTT协议的传输可靠性的保证?
- 代码质量怎么保证?
- CI/CD工具是否有用过?
- UT(单元测试)Python有没有接触过?单元测试的方式?
- 代码量?每千行代码的bug数?(感觉有点坑)
问题解答
C语言中的堆栈与进程、线程中的堆栈有什么区别?
- C语言的栈用于存储函数参数、局部变量等,函数执行完毕之后会自动释放。进程或线程的堆栈用于存储该进程或线程的局部变量、函数调用等。
- C语言的栈通常由编译器和操作系统决定。进程和线程的栈可以在创建时指定其大小,操作系统通常会为进程和线程提供某种形式的栈溢出保护。
- C语言的栈的生命周期与函数或代码块的执行周期相同。进程和线程的栈的生命周期与进程和线程的生命周期相同。
- 线程共享进程的虚拟地址空间(包括堆、全局变量等),每个线程具有自己的栈空间。
- C语言中的栈用于参数传递、局部变量存储等;进程和线程中的栈除了上述用途,还用于存储线程的状态信息(寄存器值、程序计数器等),用于实现线程之间的切换和调度。
线程的调度方式有哪些?
SCHED_OTHER | SCHED_RR | SCHED_FIFO |
---|---|---|
总结
大多数问题都是一知半解,只有MQTT、TLS相关的问题回答的比较完整,并且MQTT的特点也不太明确。
结果
面试通过。
- 原文作者:生如夏花
- 原文链接:https://blduan.top/post/%E9%9D%A2%E8%AF%95/%E6%99%AE%E6%BA%90%E7%B2%BE%E7%94%B5%E7%9A%84%E9%9D%A2%E8%AF%95%E6%80%BB%E7%BB%93-20240604/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。