这似乎是一项简单的任务,但它不起作用。我的线程函数在循环中运行并始终将数据写入数组。但有时我想从我的主函数中读取这些数据。因此,读取功能应理想地暂停线程,读取数据,然后恢复线程。但是读取的值不正确并且似乎已损坏。也许有些不对劲:
线程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]);
}
答案 0 :(得分:1)
尝试此更改:
void read_data()
{
pthread_mutex_lock(&mutex);
printf("Daten: %f\n", data[0]);
pthread_mutex_unlock(&mutex);
}