多线程安全计数器
来源:互联网 发布:知是故人来 编辑:程序博客网 时间:2024/06/05 15:58
在做性能测试时,需要统计运行一段时间内库使用锁的次数、获取时间戳的次数等。
在做这些库范围内的某个动作的次数统计时,如果库内是多线程且动作在多个线程内都出现。
可以使用下面的多线程安全的计数器
/// Counter.h#ifndef __COUNTER_H__#define __COUNTER_H__#include "Mutex.h"class CCounter{CCounter();~CCounter();public:static void count();private:static CMutex s_mutex;static int s_count;};#define COUNT(CCounter::count();)#endif
/// Counter.cpp#include "Counter.h"CMutex CCounter::s_mutex;int CCounter::s_count;void CCounter::count(){s_mutex.lock();s_count++;printf("s_count:%d\n", s_count);s_mutex.unlock();}
在需要统计的地方加上下行即可:
COUNT;
注:CCounter内部通过s_mutex保证了CCounter是线程安全的。
最后打印出的s_count值就是目标动作的统计计数值。
0 0
- 多线程安全计数器
- 多线程计数器
- 多线程计数器
- 线程安全的计数器
- 多线程条件下的计数器
- 多线程计数器锁存器---CountDownLatch
- 多线程条件下的计数器
- java--多线程实现计数器
- CAS实现多线程计数器
- Java线程安全的计数器
- Java线程安全的计数器
- Java线程安全的计数器
- 多线程环境下的计数器
- C#多线程同步(一)【计数器】
- Java多线程--同步计数器CountDownLatch
- Java多线程和多线程计数器的学习
- 多线程安全
- 多线程安全
- Python正则表达式指南
- 斐波那契数列的非递归c语言实现以及斐波那契数列的应用
- 在Express中使用模板引擎
- 动态规划10010
- HDU 1164 Eddy's research I
- 多线程安全计数器
- REACT学习笔记
- E: Some index files failed to download. They have been ignored, or old ones used instead.
- 杭电oj~~2005
- Problem A: 求倒数和【简单循环】
- leetcode--001. Two Sum
- WCF 找不到类型 WcfService
- 利用静态数码管实现从9到0 再从0到9
- iOS数据解析之JSON解析