线程模型
摘要:单线程reactor: 一般由一个event dispatche等待各类事件,而待事件发生后原地调用对应的event handler,全部调用后等待更多事件,故为loop。实质是把多段逻辑按事件触发顺序交织在一个系统线程中,一个even-loop只能使用一个核,故此类程序要么是IO-bound,要么
阅读全文
atomic
摘要:原子指令:指cpu的执行单元,不会因其他信息被打断。 多核编程注意点: race condition:多线程共同修改同一个cacheline ABA problem:一个线程两次读取一个cacheline值不变,但再第二次读取之前,有一个线程执行更改其值,执行其他工作,然后将其值改回来,欺骗第一个线
阅读全文
函数
摘要:wildcard:扩展通配符 notdir:去除路径 patsubst:替换通配符 替换引用规则:obj= $(patsubst %.c,%.o,$(dir) == obj$(dir:%.c=%.o addsuffix:对文件名加后缀$(addsuffix .o $(basename $(SOURC
阅读全文
=、:=、?=、+=
摘要:”?=“:如果没有被赋值过就赋值 "+=":添加等号后面的值 "="和":=":前者是makefile会将这个makefile展开后再决定变量的值,后者是决定变量在makefile中位置的当前值
阅读全文
submodule
摘要:git submodule init:根据.gitmodules的名称和URL,将这些注册到.git/config内,使用这个指令并不能自动删除.git/config相关内容,必须手动删除 git submodule update:根据已注册(.git/config)的submodule进行更新 g
阅读全文
Json必知必会
摘要:Json:JavaScript对象表示法(一个用于表示诸如数字或单词等数据的字符系统),是一种数据交换格式 Json的名称-值对中,名称始终被双引号包裹。 Jason的媒体类型(MIME):application/json Jason的数字类型:正整数、负整数、小数或指数(5.4321e+24) 对
阅读全文
Server-pudh
摘要:server push指的是server端发生某事件后立刻向client端发送消息。 远程事件: 和本地事件类似,分为两步:注册和通知,client发送一个代表事件注册的异步RPC至server,处理事件的代码写在对应的RPC回调中,此RPC同时也在等待通知,server收到请求后不直接回复,而是等
阅读全文
Init
摘要:在工作目录下:git init 添加远端仓库:git remote add origin xxx 提取远端仓库到本地仓库:git fetch origin 从本地仓库提取分支到工作目录下:git checkout origin xxx:xxx
阅读全文
About Git
摘要:本控制(VCS是一种记录一个或者若干文件内容变化,以便将来查阅特定版本修订情况的系统。 RCS(Revision Control System):工作原理基本上就是保持并管理文件补丁(patch),文件补丁是一种特点格式的文件,记录着对应文件修订前后的内容变化,所以根据每次修订后的补丁,rcs可以通
阅读全文
syslog架构
摘要:三种方式:unix域套接字、udp端口514以及特殊的设备/dev/klog 大多数出现调用syslog向/dev/log这个套接字发送日记消息。 Device:发送syslog的设备 Relay:转发syslog的设备(Relay可能只是转发部分接收到的syslog消息,它同时表现为Relay和C
阅读全文
Server
摘要:brpc::Server:默认构造后的Server不包含任何服务,也不会对外提供服务,仅仅是个对象。 methods: AddService();SERVER_OWNS_SERVICE/SERVER_DOESNT_OWN_SERVICE区别在于局部变量与动态申请变量 Start();一个server
阅读全文
ProtoBuf
摘要:proto文件:请求、回复、服务的接口都定义在proto文件中,且方法都是虚函数。 option cc_generic_service= true:标志生成c++类(java/py_generic_service)。 import引入包,pack跟namespace差不多可以对类进行打包。 prot
阅读全文