计算线程运行的次数



例如,使用pthread_create创建两个线程,它们都打印"hello world",我的问题是如何计算每个线程打印多少次"hello world"?

我的问题是如何计算"你好世界"印刷了多少次每个线程?

最简单的方法是在文件顶部声明一个全局原子计数器:

static std::atomic<int> counter = 0;

然后让每个线程在每次打印"你好世界"时递增计数器(即++计数器)。然后在main()中,在所有线程连接后,可以打印出值计数器。

我可以向您展示子线程将变量传递给主线程的代码;

void * thread_func(void *arg)
{
    int num = 10; //assume 'num' is the times that child thread  printed "hello world"
    pthread_exit((void *)num);
}
int main()
{
    pthread_t thread;
    void * tret;
    pthread_create(&thread,NULL,thread_func,NULL);
    pthread_join(thread,&tret);
    printf("%dn",(int)tret);  
    return 0;
}

最新更新