摘要: 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的, 阅读全文
posted @ 2018-10-14 23:42 cs_wu 阅读(2651) 评论(0) 推荐(0) 编辑
摘要: 使用golang写一个redis-cli 0. redis通信协议 redis的客户端(redis-cli)和服务端(redis-server)的通信是建立在tcp连接之上, 两者之间数据传输的编码解码方式就是所谓的redis通信协议。所以,只要我们的redis-cli实现了这个协议的解析和编码,那 阅读全文
posted @ 2018-10-14 22:38 cs_wu 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2。除了glibc,业界比较出名的内存分配器有Google的tcmalloc和Facebook的jemalloc。二者在避免内存碎片和性能上均比glic有比较大的优势,在 阅读全文
posted @ 2018-10-14 22:34 cs_wu 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 运行结果截图如下: 首先说说为什么会这样输出: 1、第一个 “默认构造函数” 是因为vector<Test> vec(1) , 所以事先使用默认构造函数构造了一个Test对象 2、第二个 “默认构造函数” 是因为Test t ,使用默认构造函数构造了一个对象 3、第三个 “移动构造函数” 大多数人会 阅读全文
posted @ 2018-10-14 22:15 cs_wu 阅读(1239) 评论(0) 推荐(2) 编辑
摘要: 首先看拷贝构造函数: 拷贝构造函数中实现了深拷贝处理。再看移动构造函数: 代码构造和拷贝构造函数类似,但是内存的处理不是拷贝而是转移。注意参数类型是右值引用。 移动赋值运算符 赋值运算符的情况和构造函数类似,还是先考察普通的赋值运算符: 再看移动赋值运算符: 阅读全文
posted @ 2018-10-14 21:07 cs_wu 阅读(3789) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义,但是也没有显式的删除),编译器会自动的隐式生成一个拷贝构造函数和赋值运算符。但用户可以使用dele 阅读全文
posted @ 2018-10-14 20:48 cs_wu 阅读(626) 评论(0) 推荐(0) 编辑
摘要: C++程序有时需要调用其他语言编写的函数,最常见的是调用C语言编写的函数。像所有其他名字一样,其他语言中的函数名字也必须在C++中进行声明,并且该声明必须指定返回类型和形参列表。对于其他语言编写的函数来说,编译器检查其调用的方式与处理普通C++函数的方式相同,但是生成的代码有所区别。C++使用链接指 阅读全文
posted @ 2018-10-14 20:43 cs_wu 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 备注:volatile的确切含义与机器有关,只能通过阅读编译器文档来理解。要想让使用了volatile的程序在移植到新机器或新编译器后仍然有效,通常需要对该程序进行某些改变。 直接处理硬件的程序常常包含这样的数据元素,它们的值由程序直接控制之外的过程控制。例如,程序可能包含一个由系统时钟定时更新的变 阅读全文
posted @ 2018-10-14 00:30 cs_wu 阅读(691) 评论(0) 推荐(0) 编辑