我想创建一个保持在循环中的新线程。像这样:
void Clock() {
double Time = 0;
while (1) {
usleep(1000);
Time = (Time+0.1);
}
return;
}
我希望我的其他现有线程能够访问最新的时钟值并使用它。如何声明"Time"变量,以便所有线程都可以访问它?如何修改上面的代码以适应这一点?我需要做什么才能访问它?
如果您只想获得当前时间,您可以不使用线程来实现。例如,看一下在C中获取当前时间。
如果你使用线程,请注意线程是独立运行的。看看互斥锁线程的一个简单例子。您需要使用pthread_create
来创建线程,使用pthread_mutex
来保护Time
变量。
我建议您先从这个开始,把原子留到下次讨论。