宁静的天空

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  5 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
re: 双向map简单讨论 heying 2011-12-19 10:42
@陈梓瀚(vczh)
使用两个map简单实现的话,缺点有以下几个:
1,由key找到value需要多次查询;
2,内存存储value存储了两份;
3,对数据的删除可能需要多次内存操作;
re: linux sys epool(转) heying 2008-03-10 23:25
我自己进行下评论:
该文章是我从网络上查找到的,最近我一直在考虑一个问题,象那些网络游戏服务器,是怎么能够支持这么多用户数量呢?
这个问题一直困扰着我,后来我想到了几种方案;
1,利用多线程,每一个客户一个线程;
这种解决方案的问题一目了然,一句话,就是支持用户数量有限;你不可能一个系统中同时创建10w线程;这简直是一个恶梦;
2,利用单线程,运用TCP的短连接,就是说发送完毕数据后等待接收,当接收完毕数据后,关闭该连接;
我原来的公司使用该种方案达到多客户端的目的;我感觉这种方案的缺点应该在于每次通讯需要重新创建连接,会导致系统性能低;但是,实际上我重来没有进行过这方面的系统测试,所以,没有一个具体的测试结果可以告诉大家;
3,使用select;该方法在上文中已经提到;
我前段时间看了linux下telnet客户端的实现代码,不知道是不是因为版本的原因,我发现我看的版本中是使用select实现了单进程用户输入,窗口输出,用户数据发送及用户数据网络接收;我认为这种在低客户量的情况下,是比较好的解决方案;毕竟操作简单;(telnet的文字协议,我会在以后详细解释)
今天我看到了这一篇文章,实际上在我的面前又呈现了一个更广阔的空间;让我真实的了解了网络服务器的通信处理;