我在 pthread 中编写全局变量时遇到问题。在我的代码头部定义的一些变量->
int iPlcWriteReal;
我创建了一些函数并通过 pthread 调用它们。
在 Main 中,线程被称为 ->
iThreadResult = pthread_create(&threadWeb, NULL, pThreadWebserver, &fTest);
pthread_join(threadWeb, NULL);
问题是当我int
从任何线程写入全局时 - 值不会在自己的线程中更新,也不会在其他线程中更新(iPlcWriteReal = 34;)。
有 3 个线程,每个线程内部都有一个 wihile(1) 循环-> 读取数据/Webserver/存档数据
使用互斥锁功能锁定和解锁我没有成功。
有了 Pointer &malloc
我也没有运气。我还通过线程传递了一个指针——地址总是正确的——但值没有被更新。
当我不使用 while(1) 循环时,与全局数据的通信正在工作 - 当我在 pthreads 中使用任何循环写入全局值时是否有任何问题?也许同步/更新功能?