libgsc继续改进(c++).
来源:互联网 发布:上海银行淘宝金卡 编辑:程序博客网 时间:2024/05/16 17:28
继续尝试future模式:
1. libgsc作客户端时的编码方式:
future函数提供了两个lambda表达式, 一个是响应到来时回调, 另一个是超时到来时回调. 这两个回调都在actor所处的线程中
被调用. 请求消息在future中自动发送.
GsAuthWithGasReq* req = new GsAuthWithGasReq();h2nActor->future(0x0001, req, [this](ushort ret, Message* r){ if(ret != RET_SUCCESS) /** 失败. */ return; GsAuthWithGasRsp* rsp = (GsAuthWithGasRsp*)r; LOG_INFO("auth with GAS successfully: %s\n", rsp->ShortDebugString().c_str())},/** timeout 回调. */[this, req]{ LOG_WARN("timeout, req: %s\n", req->ShortDebugString().c_str()) this->close();});
2. 如果两个玩家相互修改对方的exp(经验值), 代码可能是这样:
future函数可以在任何线程中调用, 但lambda表达式只会在调用future的actor中被调用.
Player* a;Player* b;a->future([a]{ a.exp += 1000; });b->future([b]{ b.exp += 1000; });
3. 重新测试了一下. 比java的性能好太多.
200个连接, 4个线程, 140万条消息/s时, cpu约为150%, 内存占用7M.
20000个连接, 4个线程, 17000条消息/s时, cpu约为53%. 内存占用92M.
0 0
- libgsc继续改进(c++).
- 继续改进放大镜的设想
- CSDN blog 还需要继续改进
- 应用ActionScript对放大镜的继续改进
- 继续对AGG svg_viewer进行改进
- 2014-3-10 继续改进导航图
- 继续改进版臭事百科爬虫20160921
- libgsc的java实现
- libgsc的通信协议设计
- C-继续努力
- 继续改进代码完成提示框,增加多个可配置项
- Google中国产品不断升级改进 继续招聘优秀人才
- CopyU!继续细节优化及人性化设计改进
- 笨拙的学生信息管理系统,以后会继续改进的
- Turla黑客团体继续改进其Carbon后门
- 继续学习c++
- 我会继续学C#
- 继续学习C:运算符
- Tomcat 配置 https 步骤
- android开发之notification通知完全解析
- JAVA正则表达式 Pattern和Matcher
- codeforces 313D Ilya and Roads (区间dp)
- AC++第零章
- libgsc继续改进(c++).
- Linux机器ssh不需密码的设置
- 利用pulltoRefeshListView实现网易新闻首页效果(可以上拉下拉加载的viewpager+listview)
- 【转载】Java之美[从菜鸟到高手演变]之设计模式三
- 在代码中设ImageView的src属性
- SharePoint JS Link 之(五)关于JSLink的一些FAQ
- MySQL日期类型DATETIME和TIMESTAMP
- 软件测试与产品线上服务能力
- LwIP tcp/ip socket编程listen函数分析