- 博客(57)
- 资源 (6)
- 收藏
- 关注
转载 C++ 11 中的右值引用
右值引用的功能首先,我并不介绍什么是右值引用,而是以一个例子里来介绍一下右值引用的功能: #include #include using namespace std; class obj { public : obj() { cout ">> create obj " obj(co
2016-07-14 13:26:49
534
转载 RabbitMQ基础概念详细介绍
转至:http://www.ostest.cn/archives/497引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本
2016-03-08 10:47:25
551
转载 高性能I/O设计模式Reactor和Proactor
原文: http://www.cppblog.com/pansunyou/archive/2011/01/26/io_design_patterns.html 这篇文章探讨并比较两种用于TCP服务器的高性能设计模式. 除了介绍现有的解决方案, 还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例), 以及其在不同平台上的微调. 此文还比较了java,c#,c+
2016-03-04 15:42:10
629
转载 数组和指针的区别
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。下面以字符串为例比较
2016-02-29 11:04:00
375
原创 RPC框架
gRPC https://github.com/grpc/grpcThrift http://thrift.apache.orgWildfly 8.2.0 http://www.wildfly.orgDubbo 2.5.4-SNAPSHOT https://github.com/alibaba/dubbo
2016-02-25 16:15:48
422
原创 生成器表达式(Generator expression)和列表表达式
生成器表达式更节省内存,适合操作大数据(如大文件读取) (x for x in range(100000))列表表达式会在内存一次性生成所有数据 (x for x in range(100))
2016-01-27 16:02:36
673
转载 TCP打洞和UDP打洞
1, TCP协议通信:现在有两台电脑A和B。在假设A的地址为 192.168.0.100假设B的地址为 192.168.0.102A想给B发送一个字符串Hello, 如果A,B之间采用TCP协议,那么B收到Hello的过程是怎样的呢?首先建立连接(3次握手成功之后,A和B的链接才算成功),然后A在给B发送数据。 如果A,B不在一个局域网内,
2015-12-30 11:06:52
1682
原创 IM架构资料收集
http://www.cnblogs.com/allexw/archive/2012/12/25/2832618.htmlhttp://mobile.51cto.com/hot-439693.htmhttp://blog.youkuaiyun.com/educast/article/details/12869001
2015-12-30 10:54:40
560
原创 Graphite配置
graphite.wikidot.comhttp://my.oschina.net/fufangchun/blog/232895?p=1graphite监控新手入门
2015-12-23 15:27:57
553
原创 专词介绍
Mesos Mesos官网 What is Mesos? A distributed systems kernel Mesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos kernel runs on ev
2015-12-18 13:40:37
575
原创 input 与 raw_input
raw_input会将输入内容转化为字符串,即返回‘str’类型input接收的是Python基础类型,返回值也是基础类型input可接收Python表达式,返回表达式结果
2015-12-17 09:34:50
397
原创 Windows 下pip 安装lxml报“Unable to find vcvarsall.bat ”错
安装wheel进入命令行输入:pip insall wheel下载lxml对应版本.whl文件*lxml下载链接命令进入下载文件目录,执行以下命令pip install (对应版本).whl
2015-12-10 15:04:48
424
原创 VS IDE 下编译Qt 源码
打开qmake命令行进入Qt源码目录,输入以下命令qmake -r -spec win32-msvc2013 -tp vc等待命令执行完成即可看到生成的vs解决方案文件
2015-11-18 10:49:44
738
原创 Markdown学习
参考链接 标题可以使用#修饰一级标题二级标题三级标题有序列表123无序列表123粗体粗体 斜体引用 这是一个引用表格 col1 col2 col3 1 2 3 4 5 6代码块for (int i=0;i< m_IOInstance->GetDiPortCount()*8;i++) { Chan
2015-11-10 13:26:24
368
转载 RPC 原理
转自:原文链接在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端
2015-10-20 13:48:10
396
原创 SetWindowPos && FindWindowA
SetWindowPosSetWindowPos函数改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。函数原型BOOL SetWindowPos(HWND hWnd, const CWnd* pWndInsertAfter, int x, int y,int c
2015-10-09 11:07:33
1039
原创 智能指针
1. scoped_ptr boost::scoped_ptr的实现和std::auto_ptr非常类似,都是利用了一个栈上的对象去管理一个堆上的对象,从而使得堆上的对象随着栈上的对象销毁时自动删除。不同的是,boost::scoped_ptr有着更严格的使用限制——不能拷贝。这就意味着:boost::scoped_ptr指针是不能转换其所有权的。不能转换所有权boos
2015-09-15 10:54:04
751
转载 STL之set集合容器
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。
2015-09-11 15:10:56
336
转载 类的非静态成员函数指针详解
From:http://blog.youkuaiyun.com/hairetz/archive/2009/05/06/4153252.aspx个人感觉对于类的成员函数指针这块讲解的比较深入详细推荐阅读///////////////////////////////////////////////// 先看这样一段代码 class test { public:
2015-09-11 14:02:15
1623
转载 Qt信号与槽实现原理
有网友抱怨:哪个大牛能帮帮我,讲解一下信号槽机制的底层实现?不要那种源码的解析,只要清楚的讲讲是怎么发送信号,怎么去选择相应的槽,再做出反应。也就是类似于一个信号槽的相应流程。。。求解啊!!!看了源码,真的是一头雾水。。。撞墙的心都有了~~~~ 本文使用 ISO C++ 一步一步实现了一个极度简化的信号与槽的系统 (整个程序4个文件共121行代码) 。希望能有助于刚进入Qt世界的C++
2015-09-10 16:37:17
20896
2
原创 LoadLibraryA加载dll失败
当A.dll 内部实现依赖B.dll 时,当用LoadLibraryA(A.dll)时,要将B.dll放在同一目录,否则会加载失败
2015-09-07 15:43:55
1602
转载 hash_map和map的区别
这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。4.1 hash_map和map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。4.2 什么时候需要用hash_map,什么时候需要用m
2015-09-02 17:30:35
1069
原创 std::async
// async example#include // std::cout#include // std::async, std::future// a non-optimized way of checking for prime numbers:bool is_prime (int x) { std::cout << "Calculating. Please, wait...\n"; for
2015-09-02 15:13:22
815
转载 typedef函数指针用法
1.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plaincopychar (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2);
2015-08-28 17:36:32
346
原创 C++插件管理器
插件管理器实现原理:1. 加载dll插件管理器加载dll -----------》 dll包含有若干类 ,每个类实现一个统一结构Create()函数,该函数返回该类的一个实例 -----》每个dll有一个统一的入口初始化函数Init(),该函数将该dll中的类名与类中的Create()函数地址组合成映射表Map注册到插件管理器中2. 实现公有接
2015-08-28 17:16:11
1265
原创 数据库连接池与异步回调
负责逻辑处理的Server模块需要数据库模块异步载入用户数据,并做后续处理计算。数据库模块一般拥有一个固定连接数的连接池和一个执行SQL任务的队列,当执行SQL的任务进入队列后,从连接池中选择一个空闲的连接执行SQL任务,并把SQL执行结果通过回调函数返回给逻辑处理的Server模块。大致步骤如下: 预先分配好线程池,每个线程创建一个连接到数据库的连接数据库模块创建一个任务队
2015-08-16 09:39:26
1852
转载 使用 libevent 和 libev 提高网络应用性能
转自:点击打开链接使用 libevent 和 libev 提高网络应用性能管理多个 UNIX 网络连接构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方案,但是 libevent 库和 libev 库能够大大提高性能和事件处理能力。在本文中,我们要讨论在 UNIX®
2015-08-13 14:49:20
467
转载 Libev使用
之前没有用过libev,一般直接裸写的epoll,总结的话,libev的功能是: 支持将SOCKET,管道, 信号,以及定时器统一为通用的变成逻辑,给开发人员提供了一个简单高效的异步网络编程库。先看一段简单的客户端程序,标准echo服务:1#include 2#include
2015-08-12 11:15:11
1257
原创 new 、operator new 和 placement new 区别
(1)new :不能被重载,其行为总是一致的。它先调用operator new分配内存,然后调用构造函数初始化那段内存。new 操作符的执行过程:1. 调用operator new分配内存 ;2. 调用构造函数生成类对象;3. 返回相应指针。(2)operator new:要实现不同的内存分配行为,应该重载operator new,而不是new。operator
2015-07-23 10:35:47
479
转载 c++ 11新特性
转自:http://www.cnblogs.com/pzhfei/archive/2013/03/02/CPP_new_feature.html#section_3.1C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是
2015-07-20 11:02:11
373
转载 Qt5.4.1 + VS2008 环境搭建
欢迎转载,但转载请全文转载、注明出处并附上本文链接http://blog.youkuaiyun.com/phil2036/article/details/20409535工作联系:phil2360@gmail.com 上海 Mr.张(就是本人 )漫长及伴随各种错误的编译过程网上能找到的基本都是关于Qt4编译的文章,Qt5的无论中文或是英文都不多,
2015-04-14 17:27:09
5109
原创 头文件定义全局变量
如果在头文件中定义一个静态变量,因为静态变量只属于某个文件,如果多个源文件中包含了这个头文件,实际上相当于定义了多个静态成员变量(每个源文件一个)如果在头文件定义了一个全局变量,如果被多个源文件包含的话,应该这样使用:在头文件中:extern int var;// 不要初始化然后各个源文件包含这个头文件,在某一个源文件进行初始化。
2015-03-15 11:33:12
702
转载 const 用法总结
转自 :http://www.cnblogs.com/lichkingct/archive/2009/04/21/1440848.html1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为T
2015-03-15 10:46:56
349
转载 static_cast, dynamic_cast, const_cast探讨
转自:http://www.cnblogs.com/chio/archive/2007/07/18/822389.html首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中,
2015-03-10 10:57:42
315
转载 C++ 多态性
转自 :http://blog.youkuaiyun.com/hackbuteer1/article/details/7475622C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的
2015-03-08 10:19:56
382
转载 二叉树的广度优先遍历和深度优先遍历
转载出处:http://www.blogjava.net/fancydeepin深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个
2015-03-02 17:01:59
467
原创 C 语言实现常用排序
#include #define N 9//选择排序void select_sort(int s[]){ int i, j, temp, min; for (i=0; i<N-1; i++) { min = i; for (j=i+1; j<N; j++) { if (s[j] < s[min]) min = j; } temp = s[i]; s
2015-02-28 14:55:42
386
转载 Linux epoll 模型
Linux epoll模型定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无
2015-02-26 17:09:39
628
MFC042UD.dll unicode开发必须资源
2013-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人