使用pthread创建一个时钟

时间:2016-08-25 14:27:17

标签: c multithreading pthreads

我想创建一个保持循环的新线程。像这样:

void Clock() {
    double Time = 0;
    while (1) {
        usleep(1000);
        Time = (Time+0.1);
    }
    return;
}

然后我希望我的其他现有线程能够访问最新的时钟值并使用它。如何声明“时间”变量以便所有线程都可以访问它,以及如何更改上面的代码以适应这种情况?还有什么我需要做的才能访问它?

1 个答案:

答案 0 :(得分:1)

如果您只想获得当前时间,则无需线程即可。例如,请查看Get the current time in C

如果您使用某个帖子,请注意线程是独立运行的。有一个简单的例子,请查看Mutex lock threads。您需要使用pthread_create来创建线程,并使用pthread_mutex来保护Time变量。

我建议你先从那开始,然后将原子留到下一次。