游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10011|回复: 32

究竟多线程还是多进程?

[复制链接]

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
发表于 2012-8-27 11:57:00 | 显示全部楼层 |阅读模式
多线程现在似乎成了人人喊打的真抱屈啊。
可多进程和多线程有什么区别吗???
数据都是那些数据,逻辑都是那些逻辑。
多进程无外乎就是把数据强制划分到个个进程而已。
变相的增加了大量无用的跨进程访问开销。
多线程也可以的,限定某个内存只能某个线程使用。
究竟是整体技术协作能力偏低,技术水平偏低,还是其他的原因
让大家不敢碰多线程,非要用进程强制对数据进行私有化的保护呢?

30

主题

720

帖子

720

积分

高级会员

Rank: 4

积分
720
发表于 2012-8-27 12:18:00 | 显示全部楼层

Re:究竟多线程还是多进程?

毫无疑问是技术问题。简单来说架构不好动,综合成本太高。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20542
发表于 2012-8-27 12:39:00 | 显示全部楼层

Re:究竟多线程还是多进程?

进程跟线程还是有很大区别,它决定了数据堆栈、代码栈的位置和访问权限,这个区别是取决于操作系统。

理论上,数据还是那些数据,我们可以通过无数种方式来产生数据共享,比如内存共享、管道通讯等等,

但多线程多进程麻烦的是数据的共通和数据争夺问题,很可惜,这个问题取决于CPU的工作原理,

除非,我们有一套很漂亮的构架,既稳定又巧妙,不是不可能,只是代价较大,

当你发现用100分的力量得到的120分的效能,单线程却用70分力量就得到100分的效能,然后,玩家其实只要80分的效能就能玩好你的游戏,那就会发现其实多线程也就没那么重要。

PS,实际开发中还是有很多多线程的,随便一款MMO,它少说也有5-6个线程,一些是系统底层API产生的,一些是满足堵塞式的,比较常见的就是网络通讯线程。

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2012-8-27 15:15:00 | 显示全部楼层

Re:究竟多线程还是多进程?

我们项目回归多线程网络收发,单线程逻辑架构。

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
 楼主| 发表于 2012-8-28 11:35:00 | 显示全部楼层

Re: Re:究竟多线程还是多进程?

多线程逻辑的瓶颈在哪呢?
yahle: Re:究竟多线程还是多进程?

我们项目回归多线程网络收发,单线程逻辑架构。

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2012-8-28 13:06:00 | 显示全部楼层

Re: Re: Re:究竟多线程还是多进程?

gantleman: Re: Re:究竟多线程还是多进程?

多线程逻辑的瓶颈在哪呢?

为了达到数据一致性而作的加锁处理

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2012-8-28 15:52:00 | 显示全部楼层

Re:究竟多线程还是多进程?

多线程瓶颈有单进程的内存限制和无法完全使用多核多CPU的资源。不过我觉得多线程和多进程并不冲突,可以一起使用,就看你是否能控制好.我的服务器就是通过启动参数可以让所有服务器单进程运行,也能多进程运行,方便调试和部署.

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
 楼主| 发表于 2012-8-28 17:19:00 | 显示全部楼层

Re: Re:究竟多线程还是多进程?

32位系统是有4G内存的限制,但服务器不大多用64位的么?
现在服务器有8核,按4粒cup,32个线程,单逻辑线程怎么都难跑满,
多线程还是多进程都有点浪费。
filx: Re:究竟多线程还是多进程?

多线程瓶颈有单进程的内存限制和无法完全使用多核多CPU的资源。不过我觉得多线程和多进程并不冲突,可以一起...

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2012-8-28 17:53:00 | 显示全部楼层

Re: Re: Re:究竟多线程还是多进程?

gantleman: Re: Re:究竟多线程还是多进程?

32位系统是有4G内存的限制,但服务器不大多用64位的么?
现在服务器有8核,按4粒cup,32个线程,单逻辑线程怎么都难跑满,
多线程还是多进程都有点浪费。

其实,如果不是做万人在线的游戏,2G内存对几百人在线的webgame足够了。
多核多内存的机器,明显可以在一台物理服务器上多开几个服 [em1]

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2012-8-28 19:33:00 | 显示全部楼层

Re: Re: Re:究竟多线程还是多进程?

gantleman: Re: Re:究竟多线程还是多进程?

32位系统是有4G内存的限制,但服务器不大多用64位的么?
现在服务器有8核,按4粒cup,32个线程,单逻辑线程怎么都难跑满,
多线程还是多进程都有点浪费。

webgame之类的肯定跑不满,但实时性高的服务器还是蛮耗CPU,特别是需要3D计算.要看做的游戏类型来确定方案.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-27 05:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表