zyfforlinux

专注linux内核,系统编程,C++服务器端编程,golang ,python/bash脚本编程,DevOps,分布式...

排序:
默认
按更新时间
按访问量

6.824: Distributed Systems 课程讲义1

什么是分布式系统? 多计算机协作 DNS,P2P的文件共享 大型数据 MapReduce,以及很多的关键性基础架构都是分布式的。 为什么要分布式? 去连接物理上分离的实体 去通过隔离获得安全性 去通过复制来容错 去通过并行的CPU/mem/disk/net来达到横向扩展 但是这很负责, 许多并发的...

2016-11-19 16:38:09

阅读数:652

评论数:0

MapReduce论文笔记

什么是MapReduce? ​ 它是一种编程模型,其思想来自于函数式编程,和Python,Lisp语言中的map和reduce函数类似,其次它也是处理大数据集的一种实现,抽象出一个Map接口和一个Reduce接口,屏蔽底层的基础设施的细节,让使用者可以轻松的编写分布式的应用。 实现...

2016-11-19 15:46:17

阅读数:905

评论数:0

Item19 Use std::shared_ptr for shared-ownership resource management

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在上一篇文章中讨论了std::unique_ptr,本文讨论的则是另外一个比较重要的智能指针,std::shared_ptr,...

2016-11-16 21:58:48

阅读数:692

评论数:0

Item18 Use std::unique_ptr for exclusive-ownership resource management

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在这篇文章中我主要探讨下std::unique_ptr这个智能指针,说到智能指针就需要说下它和原始指针的区别了,原始指针很灵活...

2016-11-14 19:42:53

阅读数:529

评论数:0

Item17 Understand special member function generation

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ Effective C++中曾经提到了Rule of Three 意思就是如果你需要声明拷贝构造函数,拷贝赋值操作符和析构函数...

2016-11-09 20:21:41

阅读数:589

评论数:0

Item16 Make const member functions thread safe

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ const(可以用constexpr替换见Item15)成员函数和线程安全是本文的一个核心主题,两者究竟是如何联系在一起的呢?...

2016-10-24 12:45:33

阅读数:815

评论数:0

Item15 Use constexpr whenever possible

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 如果有人问在C++11引入的众多关键字中,有哪个关键字是最让你迷惑的,我会立马回答是constexpr,当这个关键字应用到对象...

2016-10-23 16:11:52

阅读数:617

评论数:0

世界上最简单的无锁Hash Table

​ 一个无锁的hash table是把双刃剑,它可以为某些应用程序提供性能上的大幅提升,它的缺点就是过于复杂了。Dr. Cliff Click使用Java写了第一个可工作的无锁hash table,并在2007年的时候公布其源码,并且在同一年在Google发表了演讲。原理分析​ 本文将通过...

2016-10-19 19:44:11

阅读数:769

评论数:0

Item14 Declare functions noexcept if they won't emit exception

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++98中异常规格说明是一个废弃的,没有人用的特性,因为它需要知道一个函数可能会抛出的异常类型,如果函数后面有改动,那么异...

2016-10-18 22:26:44

阅读数:384

评论数:0

2016年规划

要读的书 c++ concurrency in action Effective Modern C++ go学习笔记 go in practice preshing的博客 MIT6.824的课程 要做的事情 写自己的key/value分布式存储 对C++并发编程和内存模型有深刻认识 工作落实 论文...

2016-10-18 18:00:24

阅读数:353

评论数:0

Item13 Prefer const_iterators to iterators

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ const_iterator 是STL提供的一个等同于const指针的东西,并且它所指向的值是不可变的。标准实践中,当你需要迭...

2016-10-16 22:52:03

阅读数:454

评论数:0

并发数据结构Leapfrog Probing

Leapfrog Probing一个hash table是用来存取一系列key/value对,有很多方式用来实现一个hash table。但是都有一个共同点就是桶,每一个hash table都会包含一系列的桶,对于每一个key来说都会唯一的属于一个桶。为了决定某个key是属于哪个桶,你需要对这个k...

2016-10-13 22:01:28

阅读数:943

评论数:0

Item12 Declare overriding function override

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在C++面向对象的世界里面主要是围绕着类,继承和虚函数,而在这个世界里面虚函数的实现就是靠派生类重写基类的虚函数,但是这很容易出错, ...

2016-10-11 21:20:26

阅读数:639

评论数:0

Item11 Prefer deleted functions to private undefined ones

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 如果你把你的代码提供给其他开发者,但是却不想让其他人调用某些函数,这个时候你只需要不声明这个函数就可以了,但是有的时候你拿到了这个函数...

2016-10-09 19:41:40

阅读数:597

评论数:0

使用QSBR进行安全的内存回收

使用QSBR进行安全的内存回收在多线程场景下,经常我们需要并发访问一个数据结构,为了保证线程安全我们会考虑使用互斥设施来进行同步,更进一步我们会根据对这个数据结构的读写比例而选用读写锁进行优化。但是读写锁不是唯一的方式,我们可以借助于COW技术来做到写操作不需要加锁,也就是在读的时候正常读,写的时...

2016-10-09 15:24:27

阅读数:628

评论数:1

Chromium base库介绍

AtExitManager 类似于linux下的atexit,注册退出清理函数,不过base库的实现机制是利用了C++的RAII。void exit_first(void *data) { LOG(INFO) << "first"; }void exit_last(...

2016-10-08 09:52:44

阅读数:1916

评论数:0

Item10 Prefer scoped enums to unscoped enums

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 通常来说我们在花括号中定义的名称其作用域就在花括号中,但是C++98的枚举类型的声明缺不遵从这个规则。enum Color {blac...

2016-10-07 23:36:54

阅读数:314

评论数:0

Item9 Prefer alias declarations to typedefs

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 C++11中引入的std::unique_ptr智能指针是个好用的东西,在我们使用unique_ptr的时候往往会写出这样的类型std...

2016-10-07 20:23:35

阅读数:525

评论数:0

Item8 Prefer nullptr to 0 and NULL

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 0是int类型,并不是指针类型,但是当0赋值给一个指针类型的时候,0将会被解释成空指针,在C++98中关键字NULL其本质就是一个lo...

2016-10-07 18:30:25

阅读数:566

评论数:0

Item7 Distinguish between () and {} when creating objects

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 在引入C++11后变量的初始化方式多种多样,对于每种初始化的方式的区别和联系是一个让我很迷惑地方 int x(0); int y...

2016-09-30 09:18:01

阅读数:424

评论数:0

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