免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 我要思考
打印 上一主题 下一主题

[C] 今天面试官告诉我多线程才能提供服务端的并发 [复制链接]

论坛徽章:
0
71 [报告]
发表于 2010-01-03 13:05 |只看该作者
无奈的围观。

唉, 大家都喜欢 一点实际问题都不沾边的在那里瞎讲,以空对空。 反正都是空的理论。谁都奈何不了谁。真的看不出任何意义。

真正切切的拿些代码 拿些实例出来比较吧。

论坛徽章:
0
72 [报告]
发表于 2010-01-03 13:14 |只看该作者
习惯就好了
不在面试里打击你,到时候hr怎么和你谈工资?

大部分不是技术问题,其实他第一眼看见你,10秒内就会决定雇佣不雇佣你了。其他的时间就是逢场作戏而已

论坛徽章:
0
73 [报告]
发表于 2010-01-04 11:59 |只看该作者

回复 #65 oasisfai 的帖子

高手

论坛徽章:
5
未羊
日期:2014-08-07 15:42:10双子座
日期:2014-09-23 15:42:172015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:282022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32
74 [报告]
发表于 2010-01-04 13:18 |只看该作者

回复 #72 freecutelei 的帖子

有道理.

论坛徽章:
0
75 [报告]
发表于 2010-01-04 13:41 |只看该作者
原帖由 我要思考 于 2009-12-28 19:38 发表
我就忘了问为什么目前流行的 nginx,lighttpd为什么都是多进程工作模式


nginx 只开两个进程的时候,也可以提供几千的并发,一个 master,一个 worker。
如果是 Apache 则取决于 MPM 模块的选择。Unix 平台 Apache 默认采用 prefork,也有多进程/多线程结合的 MPM,比如 mpm_worker。

多线程/多进程在“上下文切换开销”这一块的差别越来越小,主要问题在于多线程模型中几乎必须用锁来控制内存共享区域的访问。死锁是个很讨厌的东西,多线程一来以后还会对模块的使用造成限制,比如有些模块不是线程安全的,多线程模型里就不能直接用。

论坛徽章:
0
76 [报告]
发表于 2010-01-04 13:45 |只看该作者
原帖由 zylthinking 于 2009-12-30 11:46 发表
多进程确实看上去没有锁的问题, 不过只是现象吧。
多线程之所以有锁, 是因为要并发访问共享数据, 多进程访问共享内存的时候, 就可以不用锁?
除了专门想的免锁算法, 似乎也做不到, 另一方面, 多线程难 ...


多进程 IPC 用管道的很多,倒不一定共享内存。

论坛徽章:
0
77 [报告]
发表于 2010-01-04 14:50 |只看该作者
原帖由 我要思考 于 2009-12-28 20:49 发表
独立的进程空间,肯定比共享的多线程并发高。又不是来一个新连接就创建一个新进程。最讨厌装13的人
还说论坛的人鱼龙混杂,论坛的不可相信。最好是找官方的文档



其实linux的线程和进程没太大区别的。。。。。。。。。。。。。。。



多线程的好处就是各线程之间通信简单了


多进程好处就是一个down了 其他不受影响


至于并发还从来没听说过跟进程模式和线程模式有关


并发的多少主要取决于业务逻辑的复杂性 和 每个逻辑使用的时间片的时间。


现在的很多服务都采用多线程+libevent+非阻塞读写+后台线程处理业务逻辑

评分

参与人数 1可用积分 +8 收起 理由
langue + 8 我很赞同

查看全部评分

论坛徽章:
0
78 [报告]
发表于 2010-01-04 15:16 |只看该作者
原帖由 langue 于 2010-1-4 13:45 发表


多进程 IPC 用管道的很多,倒不一定共享内存。

用管道也会有一个进程阻塞等待另一个进程的情况,而共享内存的锁也是这种同步机制,只是实现机制不同,所以我感觉如果线程lock多,是业务上同步的地方多,即使用进程实现,也还是要同步,所以,进程和线程效率在这点上应该是差不多的。

“多线程一来以后还会对模块的使用造成限制,比如有些模块不是线程安全的,多线程模型里就不能直接用。”
这点有道理。

评分

参与人数 1可用积分 +8 收起 理由
langue + 8 我很赞同

查看全部评分

论坛徽章:
0
79 [报告]
发表于 2010-01-04 15:17 |只看该作者
原帖由 redor 于 2010-1-4 14:50 发表



其实linux的线程和进程没太大区别的。。。。。。。。。。。。。。。



多线程的好处就是各线程之间通信简单了


多进程好处就是一个down了 其他不受影响


至于并发还从来没听说过跟进程模式和 ...

顶这个

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
80 [报告]
发表于 2010-01-05 12:24 |只看该作者


来凑个热闹。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP