
C++并发
文章平均质量分 92
华秋实
likeyockie@163.com
展开
-
brpc组件bvar源码解析(四)Sampler、SamplerCollector和Window类簇
1.Sampler类原创 2022-06-01 01:05:19 · 720 阅读 · 1 评论 -
brpc组件bvar源码解析(三)Variable、Reducer和Adder
1.Variable类Variable是所有bvar的基类,是一个纯虚类。拥有的唯一的成员变量是_name。Variable类中的接口分为几类:描述相关的子类实现纯虚函数describe,目的是将bvar的值写入ostream。get_description不是纯虚函数,它调用了describe写入ostringstream,返回ostringstream的string。曝光相关的例如:expose,expose_impl,expose_as,list_exposed,count_ex原创 2022-05-19 17:26:43 · 859 阅读 · 0 评论 -
brpc组件bvar源码解析(二)AgentGroup和AgentCombiner
上一篇:brpc组件bvar源码解析(一)简介、使用和类的关系1.AgentGroupAgentGroup中通过tls数据实际保存了bvar在每个线程中的统计值。AgentGroup类的定义:模板参数Agent实际传入的是AgentCombiner::Agent这个结构体;对于Agent相同的bvar,例如两个bvar::Adder< int >,在AgentGroup中实际的存储空间是同一块buffer,通过AgentId定位(类似一个数组的不同下标)。成员变量都是static的,原创 2022-05-15 23:47:26 · 675 阅读 · 0 评论 -
【C++并发实战1】
boost::thread的使用首先确定安装了boostboost的安装转载 2014-06-12 01:01:59 · 1843 阅读 · 0 评论 -
【C++并发实战2】
thread::join()是个简单暴力的方法,主线程等待子进程期间什么都不能做,一般情形是主线程创建thread object后做自己的工作而不是简单停留在join上。thread::join()还会清理子线程相关的内存空间,此后thread object将不再和这个子线程相关了,即thread object不再joinable了,所以join对于一个子线程来说只可以被调用一次,为了实现更精细的转载 2014-07-15 00:25:00 · 956 阅读 · 0 评论 -
SMP中多线程程序的性能衰退现象之False Sharing
这次我们来聊一聊多核CPU运行多线程程序时,可能会产生的一种性能衰退现象——False Sharing. 貌似很高大上?No No No,我相信看完这篇文章之后你会完全理解False Sharing,并且能够在设计和编写多线程程序的时候意识到并完美解决这个问题。 OK,我们开始吧。首先,False Sharing的产生需要几个特定条件:CPU具有多个核心,其上运行着的同一个程序的多个线程分别运行在转载 2016-11-29 22:35:47 · 928 阅读 · 0 评论