c -使用pthread创建时钟



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

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

我希望我的其他现有线程能够访问最新的时钟值并使用它。如何声明"Time"变量,以便所有线程都可以访问它?如何修改上面的代码以适应这一点?我需要做什么才能访问它?

如果您只想获得当前时间,您可以不使用线程来实现。例如,看一下在C中获取当前时间。

如果你使用线程,请注意线程是独立运行的。看看互斥锁线程的一个简单例子。您需要使用pthread_create来创建线程,使用pthread_mutex来保护Time变量。

我建议您先从这个开始,把原子留到下次讨论。

最新更新