服务端开发工程师常见面试题目
多进程多线程的区别
1.进程是资源调度的最小单位,线程是cpu调度的最小单位
2.数据共享和同步:多进程(数据共享复杂,需要ipc;数据是分开的,同步简单)多线程(共享进程数据,数据同步复杂)
3.内存,cpu: 多进程(占用内存多,切换复杂,cpu利用率低)多线程(占用内存少,切换简单,cpu利用率高)
4.编程调试:多进程(编程调试简单)多线程(变成调试复杂)
5.可靠性:多进程(进程间不会互相影响)多线程(一个线程挂掉导致整个进程挂掉)
6.分布式:多进程(适应于多核,多机分布式;如果一台机器不够,扩展到多台机器比较简单)多线程(适应于多核分布式)
c++类里面编译器默认生成的函数有哪几个?
1.构造函数
2.拷贝构造函数
3.赋值构造函数
4.析构函数
voliate关键字的作用
使用voliate声明变量值的时候,系统总是重新从它所在的内存读取数据;用voliate声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错.
使用场景:多任务环境下各任务间共享的标志应该加v
多进程多线程的区别
1.进程是资源调度的最小单位,线程是cpu调度的最小单位
2.数据共享和同步:多进程(数据共享复杂,需要ipc;数据是分开的,同步简单)多线程(共享进程数据,数据同步复杂)
3.内存,cpu: 多进程(占用内存多,切换复杂,cpu利用率低)多线程(占用内存少,切换简单,cpu利用率高)
4.编程调试:多进程(编程调试简单)多线程(变成调试复杂)
5.可靠性:多进程(进程间不会互相影响)多线程(一个线程挂掉导致整个进程挂掉)
6.分布式:多进程(适应于多核,多机分布式;如果一台机器不够,扩展到多台机器比较简单)多线程(适应于多核分布式)
c++类里面编译器默认生成的函数有哪几个?
1.构造函数
2.拷贝构造函数
3.赋值构造函数
4.析构函数
voliate关键字的作用
使用voliate声明变量值的时候,系统总是重新从它所在的内存读取数据;用voliate声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错.
使用场景:多任务环境下各任务间共享的标志应该加v