7 self-motivation

尚未进行身份认证

专注LINUX开发

等级
博文 236
排名 3k+

SMP缓存一致性

http://www.anger6.com/?p=641在阅读linux相关源码的过程中,经常看到内存屏障相关原语,如mb(),rmb(),wmb等。要想理解这些原语的作用,有必要理解SMP缓存一致性原理。在SMP系统中,处理器的每个核都有独立的一级缓存,因此同一内存位置的数据,可能在多个核一级缓存中存在多个副本,所以存在数据一致性的问题。目前主流的缓存一致性协议是MESI协议及其衍生协议...

2019-06-23 19:06:48

AUTOTOOLS工具

转自我的博客:http://www.anger6.com/?p=621在linux环境下通过源码安装程序,我们通常只需要下载源码包,解压,然后执行如下命令:./configuremakesudomakeinstall.之所以能这么easy,背后是autotools的功劳。使用autotools的基本流程如下:通常我们只需要编写Makefile.am和configu...

2019-06-23 11:17:16

GRPC C++源码阅读(12)—-无锁队列的实现

http://www.anger6.com/?p=582grpcc++库为了达到高性能,采用了许多先进的编程技术(虽然会违背我们的直觉,甚至影响我们流畅地阅读其代码。这也是为什么我要分析其源码的原因,funny!isn’tit?)。如异步非阻塞,线程池,无锁队列,I/O多路复用等。这篇文章来分析下无锁队列的实现。先来看一下无锁数据结构的概念。一个数据结构能被称为是无锁的...

2019-06-22 15:40:25

Docker源码分析(二)-------代码结构

http://www.anger6.com/?p=505再开始分析docker源码之前,我们先来看下代码的目录结构。现在docker分为商业版和社区版两个版本,社区版docker-ce的github地址如下:https://github.com/moby/moby下载好代码,可以看到moby目录结构如下:api:顾名思义,api目录是dockercli或者第三...

2019-06-09 21:56:44

gRPC C++源码阅读 grpc初始化

http://www.anger6.com/?p=420这篇文章讲述grpc核心代码的初始化流程。先看一个类图任何依赖grpc核心lib初始化的代码,都需要在.cc文件中定义类型为GrpcLibraryInitializer的静态变量g_gli_initializer。这个对象的作用通过类图可以看出,会以单例模式初始化g_glip,g_core_co...

2019-06-01 23:24:32

8.GRPC C++源码阅读 异步服务器

更多相关文章www.anger6.com还是通过官方的例子来讲述:grpc/src/examples/cpp/helloworld/greeter_async_server.cc:main函数很简单intmain(intargc,char**argv){ServerImplserver;server.Run();return0;}ServerImpl...

2019-05-25 22:44:46

gRPC 7.RPC C++源码阅读 同步SERVER线程模型

如果我们使用grpcc++的同步API来实现一个server,就如官方的grpc/examples/cpp/helloworld/greeter_server.cc例子所示。那么如果同时来到多个rpc请求的话,线程模型是如何的呢?通过阅读代码,可知线程模型会如下图所示:grpc会使用线程池来处理所有文件描述fds上的事件,线程池中的线程分为2种,一种是专门用来处...

2019-05-23 23:39:23

gRPC--GRPC IS WHAT?

http://www.anger6.com/?p=112

2019-05-19 21:19:52

GRPC C++源码阅读(一)

从本章开始,将带领大家一起阅读grpc的c++代码,通过阅读源码,一方面能够让我们更好的理解我们的程序是如何运转的;另一方面,在遇到问题时也能够更快更好的定位解决。我们从官方的HelloWorld例子开始:grpc\examples\cpp\helloworld\greeter_server.cc:更多内容:http://www.anger6.com/?p=274...

2019-05-19 21:19:17

grpc---protocol buffer编码原理详解

http://www.anger6.com/?p=170

2019-05-19 21:18:26

!!!!!!!!!!!欢迎访问我的个人网站!!!!!!!!!!!!!

http://www.anger6.com/希望有志同道合的朋友一起来学习和交流。

2019-05-17 23:19:50

集合Sets

SetsPython还提供了集合类型。集合是没有重复元素的无序集合。集合的基本使用包括成员检测和消除重复元素。集合对象也支持数学上的并集,交集,差集,异或运算。{}或者set()函数可以用来创建集合。注意:创建一个空集合必须使用set(),而不能使用{}。因为{}是一个空字典。Hereisabriefdemonstration:>>>basket=...

2019-03-20 22:22:36

python入门教程------元组和序列

上一节我们看到列表和字符串有许多共同的属性,比如索引和切片操作。它们是两种序列类型(list,tuple,range)。Python是一门不断发展的语言,可能会加入新的序列类型。今天我们来看另外一种标准的序列类型:tuple。元组由一系列逗号分隔的元素构成:>>>t=12345,54321,'hello!'>>>t[0]1234...

2019-03-20 20:35:13

python入门教程------list

下同是使用list方法的一些例子:>>>a=[66.25,333,333,1,1234.5]>>>print(a.count(333),a.count(66.25),a.count('x'))210>>>a.insert(2,-1)>>>a.append(333)>>&...

2019-03-19 23:06:57

Linux下使用automake、autoconf生成configure文件

一、生成configure过程中各文件之间的关系图二、详细介绍autoscan:扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。aclocal:根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件aclocal.m4中。aclocal...

2018-02-09 22:39:50

Go工具和调试详解

工具集gobuild-gcflags:传递给编译器的参数-ldflags:传递给链接器的参数-work:查看编译临时目录-race:允许数据竞争检测(仅支持amd64)-n:查看但不执行编译指令-x:查看并执行编译命令-a:强制重新编译所有依赖包-v:查看被编译的包名,包括依赖包-pn:并行编译所使用的CPU数,默认为全部-o:输出文

2017-12-05 20:39:57

docker镜像存储详解

镜像来源镜像需要存在于本地仓库中才能用其启动容器,镜像通常有以下三种来源:l 使用dockerfile构建l 导入从其它仓库save的镜像l 从远端仓库pull镜像 其它还有对容器进行commit等,但它们的原理都包含在了以上3种方式之中。 无论采用哪种方式,镜像的最初来源一般都是通过dockerfile构建而来,因此首先分析dockerfile构建镜像的过程

2017-11-11 15:00:15

基于nodejs的开源博客0.1发布了!!!!

基于nodejs实现的开源博客系统,主要用到的技术:前端:自己写html+css+js后端:nodejs,express模板引擎:handlebars数据库:mongodb0.1版本实现的功能:1.发表博客2.博客标签功能3.基本的文章,标签后台管理功能4.分享到朋友圈,微博等功能功能还比较简单,欢迎大家提需求。github地址:

2017-09-15 23:28:52

一篇文章带你了解Flannel

【编者的话】Flannel是CoreOS团队针对Kubernetes设计的一个覆盖网络(OverlayNetwork)工具,其目的在于帮助每一个使用Kuberentes的CoreOS主机拥有一个完整的子网。这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。第一部分:Flannel介绍Flannel是CoreOS团队针对Kubern

2017-05-11 21:00:35

使用Compose变量定制Docker网络

使用[Docker多节点网络]来创建虚拟网络,把容器接入虚拟网络,能实现应用中所需要的网络拓扑。具体来说,Bridge网络能用来创建单节点网络,Overlay网络能创建多节点网络。通过这样给应用定制专用网络,能为容器提供绝对的隔离性。DockerCompose的目标是实现单节点网络,通过用--x-networking来创建一个应用程序独有的桥接网络,如果应用程序需要多节点部署,可以使用D

2017-05-08 23:08:10
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。