TCP可靠性、面向对象与线程池原理解析
需积分: 0 3 浏览量
更新于2024-08-03
收藏 430KB PDF 举报
"面试题查漏补缺(update).pdf"
这篇文档包含了多个常见的IT面试知识点,主要涉及网络协议、编程范式、并发编程以及系统调用的区别。以下是这些知识点的详细解释:
1. TCP的可靠性体现在以下几个方面:
- **连接管理**:TCP使用三次握手建立连接,确保双方准备好通信,并通过四次挥手释放连接,确保数据传输完成后安全断开。
- **确认机制**:TCP使用序列号和确认应答,确保每个发送的数据包都被正确接收。如果在规定时间内未收到确认,TCP会自动重发数据。
- **流量控制**:通过滑动窗口机制,TCP能动态调整发送方的发送速率,使其与接收方的处理能力相匹配,防止接收方被大量数据淹没。
2. **面向对象编程**是一种编程范式,强调将数据和操作数据的方法封装在一起,形成对象。其核心思想包括:
- **封装**:隐藏对象内部的复杂性,只暴露必要的接口供外部使用。
- **继承**:允许创建新的类(子类)来继承已有类(父类)的属性和方法,实现代码复用。
- **多态**:同一消息可以被不同类型的对象响应,提供了灵活性和扩展性。
3. **线程池**的使用主要是为了提高效率和资源管理:
- **资源优化**:线程池预先创建一定数量的线程,避免频繁创建和销毁线程的开销。
- **线程复用**:任务执行完毕后,线程不立即销毁,而是回到线程池等待下次使用,减少系统资源的消耗。
- **线程数量控制**:通过设置线程池大小,限制并发执行的任务数量,防止系统资源耗尽。
4. **避免死锁**的方法:
- **避免循环等待**:设计时尽量减少对多资源的锁定,避免出现线程间的循环等待。
- **资源有序分配**:设定资源获取的全局顺序,所有线程都按相同顺序获取资源,从而消除死锁可能性。
- **超时和回滚**:设置加锁操作的超时时间,超时未获得锁则回滚操作。
- **死锁检测与恢复**:系统可以定期检测是否存在死锁状态,并采取相应措施解除。
5. **I/O多路复用技术的区别**:
- **select**:支持的文件描述符数量有限,一般为1024个,适合小规模并发;轮询检查所有fd,效率较低。
- **poll**:克服了select的文件描述符限制,但同样存在轮询问题。
- **epoll**:基于事件驱动,高效且可扩展,支持水平触发和边缘触发两种模式,适用于大规模并发连接。
以上就是文档中的主要知识点,它们涵盖了网络、面向对象编程、并发控制和系统编程等多个领域,对于准备面试或提升技术能力都非常有帮助。
2022-06-20 上传
2024-04-06 上传
2023-11-14 上传
2022-06-21 上传
weixin_51148382
- 粉丝: 0
- 资源: 1
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常