面试题(二)
10、公平锁和非公平锁(蒋豆芽)
11、通信机制中哪个最优
在不同的应用场景中,通信机制的“最优”取决于具体需求和环境。以下是几种常见的进程或线程间通信机制及其优缺点:
-
共享内存:
- 优点:速度快,因为不需要通过内核进行数据传输。适合高频率的数据交换。
- 缺点:需要手动管理同步,容易导致竞争条件和数据不一致。
-
消息队列:
- 优点:提供了良好的同步机制,能够在不同进程间传递消息,适合异步通信。
- 缺点:相对较慢,因为消息需要通过内核传输,且可能有队列的管理开销。
-
信号量:
- 优点:用于同步,能够控制对共享资源的访问,避免竞争条件。
- 缺点:本身并不传输数据,主要用于控制访问。
-
管道和命名管道:
- 优点:简单易用,适合用于父子进程间的通信。
- 缺点:通常是单向的,且需要通过内核进行数据传输。
-
套接字:
- 优点:适合跨网络通信,支持多种协议(如 TCP、UDP)。
- 缺点:相对复杂,且性能可能受网络延迟影响。
选择建议
- 性能要求高且在同一系统内:优先考虑共享内存。
- 需要同步且异步处理:消息队列是不错的选择。
- 跨网络通信:套接字是必然的选择。
综上所述,选择最优的通信机制要考虑具体的应用场景、性能需求、同步要求和实现复杂度等因素。没有绝对的“最优”方案,只有适合的解决方案。
12、说一下管道 半双工(蒋)
13、如何通信
14、虚拟内存
15、7层协议、TCP /IP 4层
16、tcp的端口值
TCP(传输控制协议)端口值是一个 16 位整数,范围从 0 到 65535,分为以下几类:
-
知名端口(Well-Known Ports):0 到 1023
- 这些端口通常用于标准的服务和协议。
- 例如:
- HTTP: 80
- HTTPS: 443
- FTP: 21
- SSH: 22
-
注册端口(Registered Ports):1024 到 49151
- 这些端口由特定组织或公司注册,用于特定服务。
- 例如:
- MySQL: 3306
- PostgreSQL: 5432
- Microsoft SQL Server: 1433
-
动态/私有端口(Dynamic/Private Ports):49152 到 65535
- 通常用于客户端临时使用的端口,例如客户端与服务器通信时由系统动态分配的端口。
端口值的范围和分配标准由 IANA(Internet Assigned Numbers Authority)管理。
17、DNS
18、http和https的区别
19、https对称加密 非对称加密 分别的优缺点
前者速度快,但不够安全
后者慢,但安全