GCC 提供的原子操作

GCC 提供的原子操作gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type __sync_fetch_and_add (type *ptr, type value, ...) type __sync_fetch_and_sub ...

2018-05-16 21:24:36

阅读数:112

评论数:0

打散函数的事项

打散函数的实现方法一:void RandomShuffle(std::vector<std::string>& vecs) {    for (uint32_t i = 0; i < vecs.size();...

2018-02-08 11:33:17

阅读数:1653

评论数:0

Linux 内存占用分析

这篇博客主要介绍 linux 环境下,查看内存占用的两种方式:使用 ps,top等命令;查看/proc/[pid]/下的文件。文章简要介绍了命令的使用方法与一些参数意义,同时对/proc/[pid]/下的文件内容进行了一些详细的介绍。文章内容来自google和自我总结,如有不当之处,欢迎批评指正。...

2018-02-08 11:10:46

阅读数:2217

评论数:0

vector中的resize与reserve

void reserve (size_type n); reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会realloc...

2017-11-16 23:10:51

阅读数:250

评论数:0

c++实现反射类

在很多程序设计中,经常会遇到这样的需求,即可以通过类的名字得到对应类型的对象,尤其是一种数据需要很多策略处理的时候。比如对于网页类型的识别,一篇网页可能是视频类型、新闻类型、图片类型、网站首页、百科等很多类型中的一种,网页类型对于搜索引擎来说是非常重要的,计算rank的时候网页类型往往是一个非常重...

2017-02-09 10:49:20

阅读数:560

评论数:0

accept死循环

场景:一个多线程服务器,每个线程执行一个事件循环。在事件循环开始前,调用 socket/bind/listen 监听端口,然后将监听句柄(fd)添加到 epoll,然后开始事件循环,执行 epoll_wait。epoll_wait 返回有效事件时,对于监听事件,调用 accept 建立新连接,将该...

2016-11-28 17:08:05

阅读数:678

评论数:0

ZooKeeper原理及使用

ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍Z...

2016-03-31 15:30:38

阅读数:550

评论数:0

google string_split

//string_split.cc // Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license tha...

2015-11-18 19:55:04

阅读数:644

评论数:0

mysql索引详解(转)

什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何...

2015-08-30 11:10:48

阅读数:677

评论数:0

Linux查看CPU信息、机器型号等硬件信息

AC算法是Alfred V.Aho(《编译原理》(龙书)的作者),和Margaret J.Corasick于1974年提出(与KMP算法同年)的一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与...

2015-04-30 15:25:05

阅读数:6590

评论数:0

函数属性__attribute__((constructor))和__attribute__((destructor))

1)函数属性功能 __attribute__ ((constructor))会使函数在main()函数之前被执行 __attribute__ ((destructor))会使函数在main()退出后执行 2)功能范围 函数属性__attribute__((constructor))和__a...

2015-04-27 14:55:07

阅读数:1090

评论数:0

priority_queue 用法详解

priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法 实 现,也算是堆的另外一种形式。 先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相 似的 priority_queue,...

2015-04-18 21:10:30

阅读数:776

评论数:0

C++文件操作详解(ifstream、ofstream、fstream)

C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)   打开文件(Open a fi...

2015-04-14 16:49:02

阅读数:1023

评论数:0

svn命令在linux下的使用

1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domain     简写:svn co 2、往版本库中添加新的文件   svn add f...

2015-03-31 18:29:35

阅读数:468

评论数:0

Observer观察者模式

Observer观察者模式 作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己 UML图: Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察...

2015-02-16 15:21:32

阅读数:671

评论数:0

【Boost】Boost总结汇总

boost::noncopyable比较简单, 主要用于单例的情况. 通常情况下, 要写一个单例类就要在类的声明把它们的构造函数, 赋值函数, 析构函数, 复制构造函数隐藏到private或者protected之中, 每个类都这么做麻烦. 有noncopyable类, 只要让单例类直接继承non...

2015-01-28 14:55:27

阅读数:896

评论数:0

protobuf应用与原理详解

简介 什么是 Google ProtocolBuffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google ProtocolBuffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12...

2014-12-24 16:28:47

阅读数:3043

评论数:0

UE工具使用

1、

2014-11-04 15:57:32

阅读数:842

评论数:0

常用shell命令集合

1、进程查找 ps -ef | grep proc_name  | grep -v grep ps -aux | grep proc_name  | grep -v grep 2、进程数目 proc_num=`ps -aux | grep proc_name  | grep -v grep`...

2014-11-03 21:13:15

阅读数:1730

评论数:0

Google common.h

原文:https://code.google.com/p/protobuf/source/browse/trunk/src/google/protobuf/stubs/common.h?r=89

2014-10-29 14:52:32

阅读数:1318

评论数:0

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