在主线程上,我偶尔会更新我的radios.txt文件。但后来我有一个后台线程,他的工作是阅读radios.txt文件。它在循环中无休止地读取radios.txt。这里有一些代码来说明......
以下是偶尔在主线程上随机执行的内容:
template<typename T>
int absMaxOfVectorOfMultiples(std::vector<T>& data, int* elementOfMax, int coordChoice = 0)
{
// set initial maximum to 0
int maximum = 0;
*elementOfMax = 0;
// loop over all elements in the data vector
for (unsigned int i = 0; i < data.size(); i++) {
if (coordChoice != 2 && coordChoice != 3) {
// if the first element of the multiple struct at this data point
// is greater than current maximum, set this element
// to the new maximum value
if (std::abs(data.at(i).first) > maximum) {
maximum = data.at(i).first;
*elementOfMax = 1;
}
}
if (coordChoice != 1 && coordChoice != 3) {
// if the second element of the multiple struct at this data point
// is greater than current maximum, set this element
// to the new maximum value
if (std::abs(data.at(i).second) > maximum) {
maximum = data.at(i).second;
*elementOfMax = 2;
}
}
absMaxOfVectorOfMultiples_third(data.at(i), maximum, elementOfMax, coordChoice);
}
return maximum;
}
以下是我创建后台主题的方法:
with open(radiosTxtFile, "wb") as fo:
fo.write(json.dumps(theDevices))
我创建了我的后台线程,并在程序启动后启动它。
我想继续使用多个线程来完成此任务,但是这样做的正确方法是什么?似乎使用Queue可能是一个合适的路径,但在阅读它们之后 - 我不太清楚在这个例子中我将如何使用它。