C++
文章平均质量分 81
CodeMonkey小菜鸟
这个作者很懒,什么都没留下…
展开
-
游戏服务端开发浅谈(二)
本系列准备重点介绍MMO游戏,之前本来打算把卡牌游戏简单介绍下,但是经历过MMO游戏开发之后,发现MMO游戏的架构可以适用于很多类型的游戏。本文先介绍支持单服支撑2万人以下的经典架构。学习不能好高骛远,当把经典的传统架构学好之后,再去思考支持百万在线的架构,很多疑惑将会迎刃而解。这套架构是比较经典的,许多MMO游戏依旧在使用该架构。大部分MMO游戏,就是新服的时候会涌入较多的人,当旧服生态稳定...原创 2019-11-23 16:56:33 · 1502 阅读 · 0 评论 -
Linux定时器
Linux提供了2个函数来实现定时器功能:alarm函数和setitimer函数。 1、alarm函数如果对定时要求不太精确的话,使用alarm()和signal()就行了。函数原型:unsigned int alarm(unsigned int seconds)#include #include #include void time_handler(int原创 2015-01-10 23:07:34 · 531 阅读 · 0 评论 -
Linux C++ 文件操作
linux下文件操作有很多库函数,但是大部分库函数不支持递归操作,如创建目录不支持递归创建,删除文件不支持递归删除。一般情况下,如果对性能要求不高的话,可以调用函数system()来执行shell命令。system()函数原型如下:#include int system(const char *cmdstring);函数源码如下;原创 2015-02-03 20:38:08 · 850 阅读 · 1 评论 -
基于Leader/Follower模式的C++线程池
领导者/追随者模式,具体来说,设计一种线程池机制,每次只让一个线程(领导者)等待队列不空,其他线程(追随者)排队成为领导者。从队列中取到任务后,当前领导者首先将一个追随者线程提拔为新的领导者线程,再扮演处理线程角色。当前领导者线程等待队列的元素入队时,可能有多个处理线程同时处理任务。处理完任务后,处理线程再次番禺追随者线程的角色,等待再次成为领导者线程。要将追随者线程提拔为领导者线程以及判断当原创 2016-04-14 16:44:43 · 2216 阅读 · 1 评论 -
基于的epoll模型的简单http服务器
epoll模型主要有2种工作方式:水平触发(LT)和边缘触发(ET),本文主要是关于边缘触发的。本文实现的epoll多线程模型主要是,主线程等待事件触发,然后把相关事件放入队列,线程池从队列中取出数据处理事件。原创 2016-04-14 21:13:50 · 2064 阅读 · 0 评论 -
linux epoll 模型详解
在 linux 的网络编程中,很长的时间都在使用 select 来做事件触发。在 linux 新的内核中,有了一种替换它的机制,就是 epoll 。相比于 select , epoll 最大的好处在于它不会随着监听 fd 数目的增长而降低效率。因为在内核中的 select 实现中,它是采用轮询来处理的,轮询的 fd 数目越多,自然耗时越多。并且,在 linux/posix_types.h 头文转载 2016-04-14 21:41:06 · 495 阅读 · 0 评论