线程模型
摘要:单线程reactor: 一般由一个event dispatche等待各类事件,而待事件发生后原地调用对应的event handler,全部调用后等待更多事件,故为loop。实质是把多段逻辑按事件触发顺序交织在一个系统线程中,一个even-loop只能使用一个核,故此类程序要么是IO-bound,要么
阅读全文
atomic
摘要:原子指令:指cpu的执行单元,不会因其他信息被打断。 多核编程注意点: race condition:多线程共同修改同一个cacheline ABA problem:一个线程两次读取一个cacheline值不变,但再第二次读取之前,有一个线程执行更改其值,执行其他工作,然后将其值改回来,欺骗第一个线
阅读全文
Server-pudh
摘要:server push指的是server端发生某事件后立刻向client端发送消息。 远程事件: 和本地事件类似,分为两步:注册和通知,client发送一个代表事件注册的异步RPC至server,处理事件的代码写在对应的RPC回调中,此RPC同时也在等待通知,server收到请求后不直接回复,而是等
阅读全文
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
阅读全文