[铸铁]C++服务器面试题(二)
,ET模型是通过减少
系统调用来达到提高并行效率的。
8. 网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?
答:
两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移
9. 请列举进程间通迅都有哪些方式?并说明工作方式,优缺点等。
常见三种方式:管道,消息缓冲,共享内存
1.无名管道简单方便.但局限于单向通信的工作方式.并且只能在创建它的进程及其子孙进程之间实现管道的共享;有名管道虽然可以提供给任意关系的进程使用.但是由于其长期存在于系统之中,使用不当容易出错。
2.消息缓冲,使用方便,但是信息的复制需要额外消耗CPU的时间.不适宜于信息量大或操作频繁的场合。
3.共享内存,针对消息缓冲的缺点改而利用内存缓冲区直接交换信息,无须复制,快捷、信息量大是其优点但是不方便网络通信。
10. 你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块,如果你只能将金条切割两次,你怎样分给这些工人?
第一次切割七分之一 第二次切割七分之二
这样就分为三段 七分之一一段 七分之二一段 七分之四一段
然后根据每天工作量交换