Li_Shugan1
码龄18年
关注
提问 私信
  • 博客:91,570
    社区:3
    91,573
    总访问量
  • 23
    原创
  • 1,203,490
    排名
  • 176
    粉丝
  • 0
    铁粉

个人简介:熟悉的开发工具:Visual studio, vim,gcc等<br/>熟悉的编程语言:C、C++, python<br/>掌握堆内存管理、内存池技术。熟悉异步IO模型,设计过一个基于异步IO模型的网络通信框架。熟悉多线程编程。<br/>自信,自学能力强,善于接受新事物。能承受一定的压力、良好的职业道德,饱满的工作热情。能以较强的团队合作精神,快速的融入开发团队

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2007-07-15
博客简介:

Li_Shugan1的专栏

查看详细资料
个人成就
  • 获得4次点赞
  • 内容获得38次评论
  • 获得34次收藏
  • 博客总排名1,203,490名
创作历程
  • 10篇
    2012年
  • 13篇
    2010年
成就勋章
TA的专栏
  • c++
    2篇
  • 编程语言
    1篇
  • C++面试题-智力题
  • C++面试题-算法题
兴趣领域 设置
  • 人工智能
    机器学习神经网络tensorflow数据分析
创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

58人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

找出满足条件数对的个数

有一个无序整数数组,其中每个数都不相同,且每个数的取值范围为[1,N]。 设计一个时间复杂度为O(N)的算法,找出满足下面两个条件的数对的个数:1) 相邻两个数的和也在这在这个数组之中;2) 这两个数本身也相邻。答: 这个数组中的数有几个特征:(1) 每个都不相同;(2) 取值范围为[1,N], 完全满足计数排序的要求。不过这里不是要排序,但是可以用相同的思想:
原创
发布博客 2012.09.21 ·
2054 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

棋牌游戏服务器架构: 详细设计(二) 应用层设计

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。这里先说一下服务器应用的详细设计。      这上面提到的四4服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。这里会采用MVC
原创
发布博客 2012.09.16 ·
6345 阅读 ·
5 点赞 ·
0 评论 ·
15 收藏

棋牌游戏服务器架构: 详细设计(一) 内核设计

内核的几个组件被设计成Service,也就是说这几个模块都要实现如下接口:图1  IService接口      Start方法用来启动服务。      Stop 方法用来关闭服务。      IsService 方法用于查询当前服务是否正在工作。      内核中的几个Service都不能够直接创建,Applications在使用这些Service
原创
发布博客 2012.09.16 ·
8414 阅读 ·
6 点赞 ·
0 评论 ·
21 收藏

棋牌游戏服务器架构: 详细设计(三) 数据库设计

主要有3类Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存储的是游戏列表的信息,UserInfoDB存储玩家的全局信息,而GameDB就是积分以及积分变化情况。下面分别加以描述。1. ServerInfoDB      ServerInfoDB主要存储游戏列表信息。主要有以下几个表:      1. GameTy
原创
发布博客 2012.09.16 ·
12745 阅读 ·
7 点赞 ·
1 评论 ·
18 收藏

棋牌游戏服务器架构: 部署

先看一下,下面这张可能的部署图吧。图1  系统布署图      在这个图中,可以看到,客户端的形式多种多样,可能是pc上的一个可执行文件,也可能是通过浏览器打开的一个网页,甚至于手机客户端。它们都通过internet连接到游戏服务器。      在这个部署中有1个CenterServer,1个LogServer,3个LogonServer和很多个RoomServer
原创
发布博客 2012.09.16 ·
11034 阅读 ·
5 点赞 ·
0 评论 ·
14 收藏

棋牌游戏服务器架构: 总体设计

首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。      在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采用了Windows提供的IO完成端口来实现其网络组件。本服
原创
发布博客 2012.09.15 ·
25171 阅读 ·
12 点赞 ·
0 评论 ·
38 收藏

棋牌游戏服务器架构: 总体设计

首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。      在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采用了Windows提供的IO完成端口来实现其网络组件。本服
原创
发布博客 2012.09.15 ·
1650 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

Postgresql源码分析: 动态Hash

1. 为什么需要动态hash    平常的hash,大多是下面这样一副面孔:                                                              图1         一个静态hash结构       这种Hash维护着一些桶,就是图上左边的部分,每一个桶中装着hash值相同的数据。这些具有相同hash值的数据形成一个链表。这种hash的一个最
原创
发布博客 2012.09.13 ·
3865 阅读 ·
5 点赞 ·
1 评论 ·
4 收藏

postgresql 堆分配器mmgr详解

mmgr是postgresql的内存管理模块,其代码分布在aset.c, mctx.c和portalmem.c这三个文件之中。这里主要分析它的堆内存的管理机制,也就是aset.c文件中的内容。      AllocSetContext是堆内存管理的主要结构,其定义如下:typedef struct AllocSetContext{ MemoryContextData
原创
发布博客 2012.09.12 ·
1874 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

vim中文手册

发布资源 2012.02.07 ·
pdf

在ubuntu上编译gcc会到的问题及解决方法

这段时间,我在用软件实现一个3D图形库,因为一些原因,想要使用c++11中的东西。被迫自己编译gcc4.7. 在这个过程中传到了很多的问题,经过不懈的努力终于是成功编译出来了,现在记录一下,算作个备份。 我是在ubuntu11.10上编译的.会到了如下错误1.configure错误,说没有gmp,什么的。2. undefined reference to `lexe
原创
发布博客 2012.02.07 ·
1909 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

一个简单的C++ Unit Test framework

C++ Unit test frame 简单
原创
发布博客 2010.12.26 ·
3053 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用宏展开代码

C++ 宏 展开代码
原创
发布博客 2010.12.18 ·
938 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用成员函数指针作为Callback

C++ 函数对象 callback 成员函数
原创
发布博客 2010.12.10 ·
1237 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用成员函数指针作为Callback

C++ 函数对象 callback 成员函数
原创
发布博客 2010.12.10 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用成员函数指针作为Callback

C++ 函数对象 callback 成员函数
原创
发布博客 2010.12.10 ·
229 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何提高Brew开发的效率


   我们可以细数高通给开发者带来的不便:
  (1)对内存没什么保护,很容易就crash啦;
  (2)Crash也就算了,机器都给弄死了;
  (3)机器死了也就死了,死了可以重启,可是重启速度超慢;
  (4)重启速度已经够慢了,可还得忍受连到PC机上的蜗牛速度;
  (5)文档不够好,比MSDN差得那不是一点点。
 
   这样下来,开发brew程序的效率就明显要比开发其他平台程序低很多。老板可不会管你这一套,他们
原创
发布博客 2010.12.06 ·
750 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

异步


我以前很排斥异步调用,一看到异步调用就觉得特别扭:同步调用多好,一步步地执行,一异步程序的运行顺序不大直观。可是近段时间有了新的体会,觉得有时异步真有它的好处。记下来,作个备忘。
         先要说说那个让我觉得非得用异步调用不行的场景吧。这涉及到Command模式,为了对一个业务逻辑建模我写了一大堆Command,并把这此Command加到一个队列中。每次从这个队列中取出一个来执行。类图如下:
 
 
Continue函数的实现看起来像这样:
原创
发布博客 2010.12.06 ·
554 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在VS中如何选择BMP工程的编译器



                                                                 在VS中如何选择BMP工程的编译器
在VS中你可以通过以下步骤选择默认编译器:Tools->Options->BrewMP,然后在ARM Compiler中选择你想使用的编译器。

   郁闷的是,我使用的RVCT4.0没有出现在这个下拉列表中,仔细研究了一下,发现可以通过make命令行选项指定编译器:
右键->
原创
发布博客 2010.10.25 ·
835 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

再谈Singleton

再谈Singleton
前些时候写了一篇关于Singleton模式的使用心得,发布在这个页面:
http://blog.csdn.net/Li_Shugan1/archive/2010/08/09/5797873.aspx
后来在实际应用的过程中又出现了一些问题,其间查了一些资料,主要是Modern C++ Design,解决了Singleton在C++中会出现的问题,其方案多有借鉴Modern C++ Design中的内容,但是对析构顺序的控制,是自己的想法,自我感觉要优于这
原创
发布博客 2010.10.02 ·
675 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多