C++和go实现轮询调度算法(Round-Robin Scheduling)

在多台机器实现负载均衡的时候,经常用到轮询调度算法(Round-Robin Scheduling)。 轮询调度算法就是:以循环的方式,依次将请求调度到不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。 算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它...

2018-11-11 19:10:22

阅读数 344

评论数 0

C/C++内存泄漏及检测

“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时...

2016-04-01 17:07:09

阅读数 289

评论数 0

daemon 进程为什么要fork两次

daemon 进程为什么要fork两次 daemon进程是后台守护进程,有时候也叫精灵进程(agent)。linux下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。...

2016-03-25 11:12:43

阅读数 992

评论数 0

C++ 内存池学习 -- C++ Memory Pool

这是我翻译的文章,来自 Code Project, 原文作者: DanDanger2000.  原文链接: http://www.codeproject.com/cpp/MemoryPool.asp C++ 内存池 l  下载示例工程 – 105Kb l  下载源代码 – ...

2016-03-15 10:58:38

阅读数 356

评论数 0

冒泡、选择和快速排序算法的C++实现

冒泡、选择和快速排序算法的C++实现#include <iostream> using namespace std; void print(int* pData, int count){ for (int i = 0; i< c...

2016-02-29 14:31:38

阅读数 3784

评论数 0

linux c++ 服务器端开发面试必看书籍

由于很多朋友希望加入到Linux c++服务器端开发的队伍中,本人就结合自己的面试经历并整理了自己阅读的相关书籍,同大家分享,一起进步。人个认为以下是进入这个方向的必看书籍,各系列难度由浅入深的排序。 一、算法基础系列 数据结构基础(C语言版)》朱仲涛 译《剑指Offer》《编程之美》...

2016-02-25 21:35:03

阅读数 688

评论数 0

linux下5种网络IO模型简介

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么?到底有什么区别?对于这个问题,不同的人给出的答案可能不同,比如wiki,就认为asynchronous IO和non-blocking I...

2016-02-23 14:38:09

阅读数 1672

评论数 2

C++简单实现对象引用计数示例

C++简单实现对象引用计数示例 #include #include using namespace std; class String { public: String(const char *pdata); String(const String &rhs); String...

2016-02-17 15:16:35

阅读数 1956

评论数 0

WindowsXP下 VC6.0 编译、安装Boost库

在WindowsXP下 ,VC6.0 编译、安装Boost库 首先,从Boost的老巢http://www.boost.org/下载。下载完成以后,是一个安装文件(其实就是进行自动解压缩的)。选择你的目录,解压缩Boost库。 然后,我们开始对其进行编译。我所下载的版本是1.33.1。 编译步骤为...

2015-12-29 16:11:06

阅读数 1144

评论数 0

boost 1.56.0 编译及使用

boost 1.56.0 编译及使用 boost的编译和使用,经过搜集资料和总结,记录成文。感谢文后所列参考资料的作者。 1下载 地址:http://sourceforge.net/projects/boost/files/boost/1.56.0/ 可以选择 boost_1_56_0.7z 下载...

2015-12-18 15:14:59

阅读数 507

评论数 0

boost库的安装和使用略记

boost库的安装和使用略记 一、对于Windows平台,在VS2013中安装配置boost_1_58_0库(默认已安装vs2013) 1.到www.boost.org下载相应的代码包,我下载的是boost_1_58_0.tar.bz2 2. 解压boost文件到本地目录(如G:\boos...

2015-12-18 15:01:13

阅读数 8743

评论数 0

__FILE__,__LINE__,__DATE__,__TIME__,__FUNCTION__调试宏

C/C++ 有5个常用的预定义宏,可以当作变量直接使用 , 一般用作程序调试。 其名称分别为 :__FILE__,__FUNCTION _,__LINE__,__DATE__,__TIME__。 其含义如下: __FILE__: 记录文件的路径加名称 __FUNCTION __:当前所在函数名 _...

2015-12-04 10:31:21

阅读数 552

评论数 0

C可变参数函数实现

在C程序中,为了实现可变参数函数,要用到以下这些宏: void va_start( va_list arg_ptr, prev_param );  type va_arg( va_list arg_ptr, type );  void va_end( va_list arg_ptr );   ...

2015-10-27 17:45:33

阅读数 257

评论数 0

linux下用core和gdb查询出现"段错误"的地方

有些时候,在执行一段C代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"段错误"。遇到这种问题是非常无语的,只是提示了"段错误",其他什么都没有。如果我们一味地去看代码查找问题,那太疼苦了,因为我们都相信自己写的代码没问题。下面介绍一种方...

2015-10-23 16:49:01

阅读数 2209

评论数 0

《UNIX环境高级编程》示例代码中apue.h头文件的配置

最近学习《UNIX环境高级编程》(第3版)这本书,从http://www.apuebook.com/ 下载的示例在编译时,总是提示 "错误:apue.h:没有那个文件或目录",发现apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。我们将它放入系统...

2015-09-29 17:13:33

阅读数 342

评论数 0

Log4j日志级别

日志记录器(Logger)是日志处理的核心组件。 log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level)分别为:( 以下内容就是摘自log4j API   http://jakarta.apache.org/lo...

2015-08-21 14:58:45

阅读数 477

评论数 0

值得推荐的C/C++框架和库 (真的很强大)

值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代...

2015-08-12 17:30:07

阅读数 373

评论数 0

C++ function、bind以及lamda表达式

本文主要是内容是C++0x中新增的lambda表达式, function对象和bind机制。之所以把这三块放在一起讲,是因为这三块之间有着非常密切的关系,通过对比学习,加深对这部分内容的理解。在开始之前,首先要讲一个概念------closure(闭包),这个概念是理解lambda的基础。下面我们...

2015-08-12 16:53:22

阅读数 484

评论数 0

智能指针学习

C++ 智能指针详解   一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文...

2015-08-12 11:36:21

阅读数 224

评论数 0

智能指针的使用

在 c++ 98 里面只有一种智能指针,就是 std::auto_ptr,因为具有唯一所有权的特征,所以限制了它的使用范围,比如你无法在容器中使用它。而我们知道 stl 容器是值语义的,如果不能用智能指针管理的话,只有两种办法来使用。 一种是类似这样,直接进行值拷贝: std::vector ...

2015-08-11 15:58:24

阅读数 325

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭