一、概要
通过代码实测,分析atomic、mutex的性能差别。
二、测试代码
#pragma once
#include <atomic>
#include <thread>
#include <chrono>
#include <mutex>
using namespace std;
class AtomicTest
{
private:
atomic<long long> atomicCount=0;
long long normalCount=0;
long long mutexCount = 0;
int loop = 100000000;
atomic<long long> atomicCost=0;
atomic<long long> normalCost=0;
atomic<long long> mutexCost = 0;
mutex t;
public:
long long get_tick()
{
chrono::time_point<chrono::system_clock> now = chrono::system_clock::now();
chrono::microseconds now_ticks = chrono::duration_cast<chrono::microseconds>(now.time_since_epoch());
return now_ticks.count();
}
void process1()
{
long