自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

转载 Raft协议实战之Redis Sentinel的选举Leader源码解析

http://www.blogjava.net/jinfeng_wang/archive/2016/12/14/432108.htmlRaft协议是用来解决分布式系统一致性问题的协议,在很长一段时间,Paxos被认为是解决分布式系统一致性的代名词。但是Paxos难于理解,更难以实现,诸如Google大牛们开发的分布式锁系统Chubby都遭遇了很多坑。Raft协议设计的初衷就是容

2017-12-24 16:43:46 5802 4

转载 error while loading shared libraries错误解决

原文:http://blog.csdn.net/ariessurfer/article/details/7984001出错如下:主要错误:error while loading shared libraries: libboost_regex.so.1.51.0: cannot open shared object file: No such file or directory

2017-12-17 17:37:23 1364

转载 在 linux 下使用 CMake 构建应用程序

原文地址: https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/CMake 简介CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspa

2017-12-17 16:53:36 232

转载 C语言 inf和nan

inf :infinity (linux)  等同于   #INF:infinity  (windows)nan :not a number     等同于      #IND:indeterminate (windows)注意:1、inf一般是因为得到的数值,超出浮点数的表示范围(溢出,即阶码部分超过其能表示的最大值);而nan一般是因为对浮点数进行了未定义的操作,如对-1开方。

2017-12-03 15:34:32 812

转载 LINUX内核内存屏障

=================                         LINUX内核内存屏障                         =================By: David Howells     Paul E. McKenney 译: kouu 出处: Linux内核文档 -- Documentati

2017-10-29 17:46:04 298

转载 setsockopt中参数之SO_REUSEADDR的意义

1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。    SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。TCP,先调用close()的一方会进入TIME_WAIT状态2、

2016-05-01 13:56:49 316

转载 GNU C中不为人知的特色:__attribute__机制

十一放假放的不亦乐乎啊,今天才静下来看看技术,偶然碰到了__attribute__,虽然之前在看Linux内核代码时见过很多次,但还是对它熟视无睹,罪过啊,下面的文章是从源码网上转载的,原文在这里:http://www.yuanma.org/data/2006/0625/article_948.htm,此处只是做简单阐述,共同进步。    GNU C的一大特色(却不被初学者所知)就是__a

2016-04-09 17:29:13 379

转载 CAS原子操作实现无锁及性能分析

Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Nov 13th, 2014最近在研究nginx的自旋锁的时候,又见到了GCC CAS原子操作,于是决定动手分析下CAS实现的无锁到底性能如何,网上关于CAS实现无锁的文章很多,但少

2016-04-05 23:26:47 281

转载 cmake 学习笔记(三)

学习一下cmake的 finder。finder是神马东西?当编译一个需要使用第三方库的软件时,我们需要知道:去哪儿找头文件 .h对比GCC的 -I 参数去哪儿找库文件 (.so/.dll/.lib/.dylib/...)对比GCC的 -L 参数需要链接的库文件的名字

2016-04-03 21:46:35 309

转载 cmake 学习笔记(二)

这次应该简单看看语法和常用的命令了。简单的语法注释# 我是注释命令语法COMMAND(参数1 参数2 ...)字符串列表A;B;C # 分号分割或空格分隔的值变量(字符串或字符串列表)set(Foo a b c)设置变量 Foocommand(${Foo})等价于

2016-04-03 21:33:12 254

转载 cmake 学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:

2016-04-03 20:39:30 346

转载 GDB 进行调试 使用心得

1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的。   需要像以下这样使用:    #gdb app    (gdb) r -p1 -p2    或者在运行run命令前使用set args命令:    (gdb) set args p1 p2    可以用show args 命令来查看2. 加入断点

2016-04-02 17:41:36 260

翻译 Vim简明教程

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2016-03-28 22:33:44 893 2

转载 异常和异常处理(windows平台)

翻译的不好,莫怪。原文地址: http://crashrpt.sourceforge.net/docs/html/exception_handling.html#getting_exception_contextAbout Exceptions and Exception HandlingAbout Exception当程序遇到一个异常或一个严重的错误时,通常意味着它不能继

2015-10-30 23:07:08 3312

转载 c/c++内存对齐详解

c/c++内存对齐详解   一、为什么会有内存对齐?       进行内存对齐的作用主要有两个.       ( 1 )平台移植 :   不是所有的硬件平台都能够访问任意地址上的数据,       ( 2 )性能 :  内存对齐后访问速度提升了 (对于访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。)       为什么内存对齐会提升效率?

2015-10-01 23:57:51 577

转载 D3DPOOL详解

翻译自:http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb172584(v=vs.85).aspx定义资源缓存的存储位置。 VIDEO MEMORY(VM):显卡上的显存,CPU只能通过AGP或PCI-E总线访问,读写速度都是非常慢的,CPU连续写VM稍微快于读,因为CPU写VM时会在CACHE中分配32

2015-05-17 22:41:17 611

转载 boost bind初步探究

最近对boost的bind部分比较感兴趣,对其背后的机制进行了简单的分析,和大家分享一下。注,我所看的代码是boost_1_51_0, 想来各个版本的差异不大。从一个例子开始直接上代码(从官方网站摘取)定义函数[cpp] view plaincopyprint?int f(int a, int b)  {      retur

2015-02-27 23:09:14 411

转载 C++预编译头文件stdafx.h作用

  许多初学 VC 的朋友也许都为那么一个问题困扰过:    为什么所有的 cpp 都必须 #include "stdafx.h"     也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢?    这得从头文件的编译原理讲起。其实头文件并不神秘,它的全部作用,就是把自己的所有内容直接“粘贴”到相应的 #in

2015-01-18 11:12:47 618

转载 智能指针(三):unique_ptr使用简介

我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的auto_ptr对象失效,可咋整呢?这个时候就要使用unique_ptr了,顾名思义嘛,un

2015-01-17 16:03:29 425

转载 C++11之 unique_ptr

在C++11中加入了很多的新特性,unique_ptr一枝独秀,对于动态分配的内存对象,它简单有效。虽然它不是万能的,但是它做的已经够好了:利用简单的语法便可以管理动态分配的对象。 基本语法:unique_ptr 是一个模板类,你可以很简单地构造一个unique_ptr的对象,如下: ?1std::unique_ptr p(

2015-01-17 15:54:58 447

转载 STL的线程安全解决方案.

 由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作.  读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改!所以(下面来自> 条款十二): 1)在每次调用容器的成员函数期间都要锁定该容器。 2)在每个容器返回的迭代器(例如通过调用begin或end)的生存期之内都要锁定该容器。

2015-01-09 00:23:33 333

转载 为什么多线程读写 shared_ptr 要加锁?

为什么多线程读写 shared_ptr 要加锁?陈硕(giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》第 1.9 节“再论 shared_ptr 的线

2015-01-03 16:12:20 443

转载 Boost智能指针——weak_ptr

Boost智能指针——weak_ptr循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include#include #include #include class parent;class children;typedef boost::shared_

2015-01-03 15:15:32 279

转载 HTTP协议的头信息详解

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。 

2014-12-28 22:56:31 262

转载 HTTP协议详解(真的很经典)

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与

2014-12-28 22:55:21 287

转载 vector 释放内存 swap

http://blog.csdn.net/jerryjbiao/article/details/7389233 相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛。的确,swap交换函数是仅次于Hello word这样老得不能老的词,然而,泛型算法东风,这个小小的玩意儿却在C++ STL中散发着无穷的魅力。本文不仅详细地阐述STL泛

2014-12-27 01:26:48 322

转载 Boost智能指针——scoped_ptr

Boost智能指针——scoped_ptrboost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include#include #include class implementation{public:

2014-12-21 22:41:34 304

转载 查看gcc的默认宏定义命令

  有些时候我们在编写代码或者阅读开源项目时经常会遇到一些陌生的宏定义,在找遍所有源代码都没发现其在哪里被定义过,这时这些宏定义很可能是系统编译器自己定义的,例如[cpp] view plaincopyprint?#ifdef RW_SPINLOCK_USE_X86_INTRINSIC_  // A more balanced Read-Write spin

2014-12-20 23:31:32 538

转载 boost::implicit_cast

boost::implicit_cast在stackoverflow上看到这个帖子, 于是发现了boost::implicit_cast这个小东西.先来看看这段代码:struct top {};struct mid_a : top {};struct mid_b : top {};struct bottom : mid_a, mid_b {};void foo(m

2014-12-17 23:23:47 458

转载 Boost学习笔记 BOOST_STATIC_ASSERT

Boost学习笔记 BOOST_STATIC_ASSERT Boost中提供了一个编译时断言宏BOOST_STATIC_ASSERT,这个宏很简单,但里面也有一些值得学习的地方。首先来看看真正做事的代码template bool x>struct STATIC_ASSERTION_FAILURE;template struct STATIC_ASSERT

2014-12-17 23:05:09 624

转载 c++中的异常

原文出处:http://objects.nease.net/   http://www.360doc.com/content/09/0122/09/799_2381375.shtml             1.简介              1.1常用的错误处理方式              1.2 不常用的处理方式              1.3 异常

2014-11-30 23:31:33 342

转载 无锁队列的实现

http://coolshell.cn/articles/8239.html关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock f

2014-11-30 21:18:24 309

转载 Linux中安装boost库详解

Linux中安装boost库详解  2012-05-24 14:31:08|  分类:linux |  标签:|举报|字号大中小 订阅来自:http://apps.hi.baidu.com/share/detail/58570207boost作为一个准标准库,在C++大型项目中经常要用到。在Linux中安装和配

2014-11-28 00:39:25 1003

转载 Makefile经典教程(掌握这些足够)

makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make

2014-11-24 23:11:05 831

转载 DNS解析过程详解

先说一下DNS的几个基本概念:一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。根域服务器我们知道有13台,但是这是错误的观点。 根域服务器只是具有13个IP地址,但机器数量却不是13台,因

2014-11-09 10:43:16 381

转载 C++对象模型

 今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化    译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the

2014-10-25 16:43:08 355

转载 stl_algobase.h

stl_algobase.h// Filename: stl_algobase.h// Comment By: 凝霜// E-mail: mdl2009@vip.qq.com// Blog: http://blog.csdn.net/mdl13412// 这个文件中定义的都是一些最常用的算法, 我仅仅给出一个思路,// 不进行详尽讲解, 具体算法请参

2014-10-02 21:52:45 1220

转载 stl_hash_map.h

stl_hash_map.h // Filename: stl_hash_map.h// Comment By: 凝霜// E-mail: mdl2009@vip.qq.com// Blog: http://blog.csdn.net/mdl13412// hash_map和hash_multimap是对hashtable的简单包装, 很容易理解/

2014-10-02 21:51:59 349

转载 stl_hash_set.h

stl_hash_set.h// Filename: stl_hash_set.h// Comment By: 凝霜// E-mail: mdl2009@vip.qq.com// Blog: http://blog.csdn.net/mdl13412// hash_set和hash_multiset是对hashtable的简单包装, 很容易理解/*

2014-10-02 21:49:41 375

转载 stl_hashtable.h

stl_hashtable.h// Filename: stl_hashtable.h// Comment By: 凝霜// E-mail: mdl2009@vip.qq.com// Blog: http://blog.csdn.net/mdl13412//////////////////////////////////////////////////

2014-10-02 21:48:33 529

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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