免费注册 查看新帖 |

Chinaunix

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

单cpu的机器, 多进程编程和多线程编程有多大优势? [复制链接]

论坛徽章:
0
91 [报告]
发表于 2008-01-22 16:06 |只看该作者
原帖由 anthony1983 于 2008-1-22 16:04 发表
通常我的做法是:如果我们需要100个线程做同样的事情, 那么把这100个线程划分10~20个进程中去, 那么其中一个异常,只能波及同一个进程内的线程,其他的不受影响。

我通常也这样做,但是不能从根本解决问题。

论坛徽章:
0
92 [报告]
发表于 2008-01-22 16:12 |只看该作者
THREAD模型的安全性也有问题.

一个SERVER开1000个THREAD来处理用户请求. 如果程序有漏洞, 一个CLIENT做越轨的动作了可以获得(偷到)其他人的数据. 因为所有数据在一个地址空间.

而进程是彻底隔离的.

论坛徽章:
0
93 [报告]
发表于 2008-01-22 16:44 |只看该作者
多进程+多线程的安全性(稳定性)与执行效率是通过组合来实现的,这要看具体的应用需求来权衡,
若安全性(稳定性)要求高,那就一个进程内只启动一个线程;
若执行效率要求高,那就一个进程内启动多个线程;
若要使线程池也安全稳定,好像可以研究一下Erlang的实现,那东西牛比的不行。

论坛徽章:
0
94 [报告]
发表于 2008-01-22 20:08 |只看该作者
线程之间为啥不能用管道通信呢?
我觉得用管道通信适合在一个线程要监视大量socket且要等待另外一个线程的处理结果时,可以用管道赛,当然共享的数据量大的话就不要通过管道传送数据了,随便写入一个byte通知对方即可

论坛徽章:
0
95 [报告]
发表于 2008-01-23 12:44 |只看该作者
原帖由 bobozhang 于 2008-1-22 20:08 发表
线程之间为啥不能用管道通信呢?
我觉得用管道通信适合在一个线程要监视大量socket且要等待另外一个线程的处理结果时,可以用管道赛,当然共享的数据量大的话就不要通过管道传送数据了,随便写入一个byte通知对 ...

只用能满足特定应用需求,没说线程间通信用管道不可以啊。
但一般情况下我想线程间通信使用进程内存空间+互斥锁同步更理想。

论坛徽章:
0
96 [报告]
发表于 2008-01-23 13:34 |只看该作者
原帖由 bobozhang 于 2008-1-22 20:08 发表
线程之间为啥不能用管道通信呢?
我觉得用管道通信适合在一个线程要监视大量socket且要等待另外一个线程的处理结果时,可以用管道赛,当然共享的数据量大的话就不要通过管道传送数据了,随便写入一个byte通知对 ...


线程之间用管道? 我觉得还是用一块内存区域来模拟管道比较好。而且,很多情况下,有一次写入超过PIPE_BUF的大小。还是需要对这个管道进行写互斥吧。这样的话,还不如直接用内存来模拟。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
97 [报告]
发表于 2008-01-23 16:34 |只看该作者
原帖由 flw 于 2008-1-21 16:55 发表
多 CPU 对提高线程性能有帮助吗?
我咋记得没帮助呢。

你前后提到了“优势”和“效率”,
但是并没有说清楚是指那方面的优势和效率。
就拿效率来说,有运行效率,开发效率,维护的效率,以及应用的效率, ...



嗯???

以前一直是用多进程干的,目前写一应用,考虑用多线程处理,给你这样一说,又有点犹豫了。

咋整呢?

论坛徽章:
0
98 [报告]
发表于 2008-01-23 17:51 |只看该作者
多线程程序用log(比如log4xx系列)来调试应该是最合适的.

论坛徽章:
0
99 [报告]
发表于 2008-01-23 17:58 |只看该作者
貌似都是CU的重量级人物啊,收藏学习

论坛徽章:
0
100 [报告]
发表于 2008-01-23 21:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP