打印

腾讯面试题

[复制链接]
1491|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-7-14 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.线程和进程的区别。什么情况下使用进程。什么情况下使用线程
请不要说进程包含线程之类的。这个谁都知道。要是这么说估计就被PASS掉了.
也不要说进程之间的地址空间是独享的,而线程是共享进程的地址空间,线程的资源比进程小,创建线程比创建进程快,线程间切换块,线程间通信快,线程资源利用率好.如果这样说。肯定会问你。那进程就没有好处了?
不要说看情况。肯定会让你举例子?
(什么时候使用多进程,什么时候使用多线程,举例.这个问题,我真理解不深,一问必被问倒)

2 在TCP/IP中。服务器端如何处理大并发性。也就是说客户端如果是很多的话。服务器端如何去处理。肯定不能用fork派生子进程的方法。也不能用第三方工具。
求高手告诉我有哪些常用的框架模式。

3 在使用共享内存的时候,要注意什么?
除了共享内存没有同步机制,使用共享内存的时候,程序员要自己实现同步,还有别的要注意么?
4.System V IPC和Posix IPC有什么区别?一般是使用哪一种?

5.如果表的数据量非常大,你如何设计这样的表.
请不要说分区表什么的,这个所有人都知道.

相关帖子

沙发
火箭球迷| | 2012-7-14 22:01 | 只看该作者
1.线程和进程的区别。什么情况下使用进程。什么情况下使用线程。
1,线程切换代价比进程大(操作系统里到处都是进程,也没见系统变慢)。
2,线程挂则进程挂,稳定性差。
3,线程受限于进程资源限制,比如:ulimit -a可以看到的若干。
4,线程在同一进程内,方便的共享内存。进程则需做内存映射,相关的互斥量等也需要设置为进程共享。
5,上面都是基础认知,有开发经验应该能说出一些实际开发的经验或者总结积累。比如,我会说:
1)web服务器都支持master-worker多进程架构
2)apache还在worker进程里采取主线程,监听线程,线程池的架构。
3)lighttpd/nginx才用epoll I/O复用取代Apache愚蠢的多线程架构,线程切换少了,进程稳定了,4)I/O复用接口效率高,并发量再也不受线程数限制了。
5)我还读过Memcached源码,我知道多线程架构并发量并不一定与线程数相等,我学会了epoll+pipe的dispatch设计。
6)多进程更有利于权限控制,通常web服务器的worker进程都会setuid到普通用户,避免拥有过高权限受到漏洞攻击,而master进程拥有root权限才能bind 80。 我会扯很多这些。
6, 多进程有利于架构级别的扩展,更利于部署,但多线程并不是影响这个问题的关键因素。
7,甚至可以谈具体问题具体分析,本来就这样,问题解决又不是死板的,死板的说明还没入门。如果功能点不会变动或者变动小,做在线程池里让功能更加内聚了。 但如果是一个通用模块,把它做成可扩展的独立进程,甚至通过程序架构设计动态库加载,可配置回调等等,让它为更多的项目服务,做成进程自然而然更舒坦。

使用特权

评论回复
板凳
gxgclg| | 2012-7-14 22:08 | 只看该作者
4.System V IPC和Posix IPC有什么区别?一般是使用哪一种?
区别不大,但腾讯里基本使用System V的IPC,接口命名都是很深刻的,System V的是xxxget/xxxctl,而Posix的是xxx_open/xxx_init这种。
区别一下能想起来的估计也就是Posix的消息队列支持优先级,System V不支持,还有Posix的支持异步信号(当然没人会用这些玩意)。 还有信号量System的是信号量集合,Posix一个就一个。
它们都是关机没了,所以考虑清楚是不是要用内存映射而不是信号量消息队列这些玩意。

使用特权

评论回复
地板
txcy| | 2012-7-14 22:20 | 只看该作者
LS两位分析的很有道理

使用特权

评论回复
5
pkat| | 2012-7-15 23:00 | 只看该作者
腾讯的面试题难度不低啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝