- C++中为什么用模板类
- 可用来创建动态增长和减小的数据结构
- 他跟类型无关,因此具有很高的可复用性。
- 它在编译时检查数据类型,保证了类型安全。
- 他跟平台无关,可移植性
- 可用于基本数据类型
- 程序什么时候应该使用线程,什么时候单线程
- 耗时的操作使用线程,提高应用程序响应
- 并行操作使用线程,如c/s架构的服务器端并发线程响应用户的请求
- 多cpu系统中,使用线程提高cpu利用率
- 改善程序结构,即长又复杂的进程,将金城分为多个线程,成为几个独立或半独立的运行部分,这样程序利于理解和修改
- 内核线程和用户线程好处和缺点
- 用户线程不需要额外的内核开支,用户态线程可以根据应用的情况进行制定和修改,但当一个线程切换的i/o等待状态,整个进程也处于等待状态
- 内核线程没有限制,有利于多个处理器并发,但却占了更多的系统开支
- Tcp/ip的三次握手
- 第一次客服端向服务器发送syn,并进入SYN_SEND
- 第二次服务器收到客户端发来的syn,确认客户端syn(ack = k + 1),并发送syn+ack,服务器进入syn_recv
- 客户端收到服务器syn+ack,向服务器发送确认包ack,发送完毕,服务器和客户端进入ESTABLISHED状态。
- 实时系统的基本特性:在特定的时间内完成特定的任务,动态分配资源。
- 高精度计时系统
- 多级中断系统
- 实时调度机制
具体:https://blog.csdn.net/mark_wk/article/details/23371531
6. 在C语言中,double、long、unsigned、int、char类型数据所占字节数
7. 进程死锁的原因
资源竞争,进程推进顺序非法
8. 死锁的4个必要条件
互斥,请求保持,不可剥夺,环路
9. 死锁的处理
鸵鸟策略,预防策略,避免策略,检查和解除策略
10. 操作系统中进程调度策略有哪几种?
FCFS,优先级,时间片轮转,多级反馈
11. 数组和链表的区别
数组:数据顺序存储,固定大小
链表:数据存储随机,大小动态改变
12. ISO七层模型是什么?Tcp/udp是属于那一层,tcp/udp的特点
应用层->表示层->会话层->传输层->物理路链层->物理层
Tcp/udp是传输层
Tcp提供数据流控制,可靠性,有效流控制,全双工操作和多路复用
Udp不提供对ip可靠机制,流控制及其 错误恢复,包头小,负载小
13. 那么要是想让程序跳转到绝对地址是0x100000去执行
先将0x100000强制转换函数指针
Void(*)()0x100000 // 将函数指针声明 typedef void(*)() voidFuncPyr
再调用这个指针
*(void(*)()0x100000)() //*((voidFuncPtr)0x100000)()