如何使用多个线程同时正确读取和写入文本文件?

时间:2015-12-26 19:53:55

标签: python multithreading queue

在主线程上,我偶尔会更新我的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可能是一个合适的路径,但在阅读它们之后 - 我不太清楚在这个例子中我将如何使用它。

0 个答案:

没有答案