C++面试

Posted 追风弧箭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++面试相关的知识,希望对你有一定的参考价值。

1、TCP/UDP的区别,如何实现拥塞控制,如何实现可靠传输?udp的应用?

区别
1. TCP是面向连接;UDP是无连接的。
2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3. TCP对系统资源要求多,UDP较少。
4. 每个TCP连接都是点对点的。UDP支持一对一、一对多、多对一、多对多。
5. TCP基于字节流模式,UDP数据包模式。
6. TCP保证数据正确性(不丢包),UDP可能丢包
7. TCP保证数据顺序,UDP不保证。
8. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

UDP应用场景
1.面向数据报方式
2.网络数据大多为短消息
3.拥有大量Client
4.对数据安全性无特殊要求
5.网络负担非常重,但对响应速度要求高

2.死锁产生的原因以及必要条件

产生死锁的原因
1. 系统资源不足
2. 进程运行推进的顺序不合适
3. 资源分配不当

产生死锁的四个必要条件
1. 互斥条件:一个资源只能被一个进程使用
2. 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
3. 不剥夺条件:进程已获得的资源,在未使用完之前不能强行剥夺。
4. 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

以上是关于C++面试的主要内容,如果未能解决你的问题,请参考以下文章

C++入门篇(13)之list的实现

c++顺序容器

c++主要程序二

如何让marquee文字滚动头尾相连?

ConcurrentLinkedQueue理解

Python怎么先排序再去头尾再累加?