1
我想創建一個保留在循環中的新線程。事情是這樣的:使用pthread創建時鐘
void Clock() {
double Time = 0;
while (1) {
usleep(1000);
Time = (Time+0.1);
}
return;
}
然後,我會像我的其他現有線程可以訪問最新的時鐘值,並使用它。我如何聲明「時間」變量,以便它可以被所有線程訪問,以及如何修改上面的代碼以適應這個變量?還有,我需要做什麼來訪問它?
讓它成爲一個全局變量? –
@JoachimPileborg我有很多不同的源文件,我可以在頭文件中聲明一個全局變量以確保它能夠在我所有的源文件中使用嗎?或者是否有不同的解決方案 – Mst137
只是把它變成一個全局變量就會乞求競爭狀態。使用鎖定互斥鎖的存取器函數將其設爲靜態。在你的'Clock()'函數中鎖定相同的互斥體(只是在更新時,而不是在睡覺時)。 –