pthread读/写同步

时间:2017-10-21 17:00:40

标签: c++ multithreading pthreads

这似乎是一项简单的任务,但它不起作用。我的线程函数在循环中运行并始终将数据写入数组。但有时我想从我的主函数中读取这些数据。因此,读取功能应理想地暂停线程,读取数据,然后恢复线程。但是读取的值不正确并且似乎已损坏。也许有些不对劲:

线程FCT:

void threadfct()
{
    while (1)
    {
        pthread_mutex_lock(&mutex);
        data = write_data();
        pthread_mutex_unlock(&mutex);
    }
}

从主循环调用的函数应该读取由线程函数写入的数据:

void read_data()
{
    printf("Daten: %f\n", data[0]);
}

1 个答案:

答案 0 :(得分:1)

尝试此更改:

void read_data()
{
    pthread_mutex_lock(&mutex);
    printf("Daten: %f\n", data[0]);
    pthread_mutex_unlock(&mutex);
}