Item23 Understand std::move and std::forward

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ std::move和std::forward并不像它们的名字那样有用,这两个仅仅是一个模版函数,是在C++11中引入的,辅助移动语义的,std::move并不是真正的移动了数据,而std::forward也不是真正的进行了转发。为...
阅读(330) 评论(0)

Item22 When using the Pimpl, define specific member functions in the implementation file

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ Pimpl idiom这个C++的惯用法,我相信很多人都知道,通常为了保护我们的头文件,避免在修改类的数据成员的时候导致依赖这个头文件的程序也需要重新编译,常常被人们称为编译防火墙。例如下面这个类的头文件。class Widget...
阅读(323) 评论(0)

Item21 Perfer std::make_unique and std::make_shared to direct use of new

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ std::make_shared是在C++11中添加的一个专门用来创建智能指针的方法,而不幸的是std::make_unique在C++11中并没有,直到C++14才引进来。不过实现它也是一件很容易的一件事,如下:template...
阅读(270) 评论(0)

6.824: Distributed Systems 课程讲义2

Remote Procedure Call (RPC)RPC概述分布式系统中的关键组件;所有的实验都会使用的RPC。目标: 易于网络编程,隐藏客户端/服务器端之间通信的大部分细节,对于客户端来说就像普通的函数调用。RPC让网络之间的通讯看起来就像fn函数调用: 客户端:z = fn(x, y)服务器端:fn(x, y) { compute return z }PRC包https://g...
阅读(736) 评论(0)

Item20 Use std::weak_ptr for std::shared_ptr like pointers that can dangle

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 原始指针有一个致命的问题就是无法探知生死,尽管你可以通过释放内存后设置为空来解决部分场景下存在的问题,但是这治标不治本,当有多个指针指向同一个内存资源的时候就无能无力了。那么在这篇文章中我将介绍一个大杀器std::weak_ptr...
阅读(250) 评论(0)

6.824: Distributed Systems 课程讲义1

什么是分布式系统? 多计算机协作 DNS,P2P的文件共享 大型数据 MapReduce,以及很多的关键性基础架构都是分布式的。 为什么要分布式? 去连接物理上分离的实体 去通过隔离获得安全性 去通过复制来容错 去通过并行的CPU/mem/disk/net来达到横向扩展 但是这很负责, 许多并发的组件,必须处理好部分组件失败的情况,也 很难去了解性能的瓶颈MAIN TOPICS关于抽象,就是隐藏了分...
阅读(523) 评论(0)

MapReduce论文笔记

什么是MapReduce? ​ 它是一种编程模型,其思想来自于函数式编程,和Python,Lisp语言中的map和reduce函数类似,其次它也是处理大数据集的一种实现,抽象出一个Map接口和一个Reduce接口,屏蔽底层的基础设施的细节,让使用者可以轻松的编写分布式的应用。 实现MapReduce需要解决哪些问题?输入的数据如何分割 大量计算机组成的集群如何调度 集群中的计算机发生了错误如...
阅读(527) 评论(0)

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

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在上一篇文章中讨论了std::unique_ptr,本文讨论的则是另外一个比较重要的智能指针,std::shared_ptr,通过本文标题可知,这是一个共享所有权的智能指针,使用这个智能指针可以实现弱化的垃圾回收(Python的垃...
阅读(484) 评论(0)

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

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在这篇文章中我主要探讨下std::unique_ptr这个智能指针,说到智能指针就需要说下它和原始指针的区别了,原始指针很灵活但是处处都是陷阱,用不好很容易出错,但是智能指针(Smart Pointer)相比于原始指针更易用,通过...
阅读(337) 评论(0)

Item17 Understand special member function generation

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ Effective C++中曾经提到了Rule of Three 意思就是如果你需要声明拷贝构造函数,拷贝赋值操作符和析构函数三者中的任何一个(原因参见),那么你应该三者都声明,Inside the C++ Object Mode...
阅读(379) 评论(0)

Item16 Make const member functions thread safe

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ const(可以用constexpr替换见Item15)成员函数和线程安全是本文的一个核心主题,两者究竟是如何联系在一起的呢?这一切都源于mutable,本文试图从以下几个方面介绍。 是什么导致const成员函数变成了非线程安全...
阅读(649) 评论(0)

Item15 Use constexpr whenever possible

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 如果有人问在C++11引入的众多关键字中,有哪个关键字是最让你迷惑的,我会立马回答是constexpr,当这个关键字应用到对象上的时候,它其实就是一个加强版的const,但是当它应用到函数身上,它就有了不同的含义。为此很有必要去深...
阅读(429) 评论(0)

世界上最简单的无锁Hash Table

​ 一个无锁的hash table是把双刃剑,它可以为某些应用程序提供性能上的大幅提升,它的缺点就是过于复杂了。Dr. Cliff Click使用Java写了第一个可工作的无锁hash table,并在2007年的时候公布其源码,并且在同一年在Google发表了演讲。原理分析​ 本文将通过使用C++11来编写一个无锁的hash table,作为一个程序员我们通常会贫直觉去写一些通用的数据结构...
阅读(464) 评论(0)

Item14 Declare functions noexcept if they won't emit exception

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在C++98中异常规格说明是一个废弃的,没有人用的特性,因为它需要知道一个函数可能会抛出的异常类型,如果函数后面有改动,那么异常规格说明也有可能需要改动。与此同时调用这个函数的代码也有可能需要发生相应的改变。最要命的是编译器并不负...
阅读(265) 评论(0)

2016年规划

要读的书 c++ concurrency in action Effective Modern C++ go学习笔记 go in practice preshing的博客 MIT6.824的课程 要做的事情 写自己的key/value分布式存储 对C++并发编程和内存模型有深刻认识 工作落实 论文实验完成 已经完成的事情 工作落实...
阅读(269) 评论(0)
112条 共8页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:77486次
    • 积分:1867
    • 等级:
    • 排名:千里之外
    • 原创:110篇
    • 转载:0篇
    • 译文:1篇
    • 评论:21条
    博客专栏
    最新评论