您当前的位置: 首页 >  c++
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ tbb::atomic

软件工程小施同学 发布时间:2021-08-26 14:24:19 ,浏览量:0

事情十这样的,有同事想要统计某些广告的点击,在多线程下运行,可能会同时操作同一个数据项,最早使用一个全局锁,效果不好,现在改成了细粒度锁,每一个数据项一个锁,但还是希望性能更好些。

我的想法是,使用Intel TBB的Atomic,这就避免了使用锁,同时性能也会提升,不过,到底能提升多少还要用数据说话。

1. 不使用锁的情况

#include

#include

#include

using namespace std;

int v = 0;

void * tf(void * args)

{

    for(int i = 0;i < 100000;i++)

    {

        v += 1;

    }

    return NULL;

}

int main()

{

    pthread_t tid;

    vector vp;

    for (int i = 0;i < 100;i++)

    {

        pthread_create(&tid, NULL, tf, NULL);

        vp.push_back(tid);

    }

    for (int i = 0;i < 100;i++)

    {

        pthread_join(vp[i], NULL);

    }

    cout

关注
打赏
1665320866
查看更多评论
0.0437s