c pthread全局变量-无写访问/无更新
我在pthreads中编写全局变量时遇到问题。 我的代码头中定义的一些变量->c pthread全局变量-无写访问/无更新,c,C,我在pthreads中编写全局变量时遇到问题。 我的代码头中定义的一些变量-> int iPlcWriteReal; 我创建了一些函数并通过pthread调用它们 主线程称为-> iThreadResult = pthread_create(&threadWeb, NULL, pThreadWebserver, &fTest); pthread_join(threadWeb, NULL); 问题是当我从任何线程写入全局int时-该值不会在自己的线程中更新,也不会在其他线程中更
int iPlcWriteReal;
我创建了一些函数并通过pthread调用它们
主线程称为->
iThreadResult = pthread_create(&threadWeb, NULL, pThreadWebserver, &fTest);
pthread_join(threadWeb, NULL);
问题是当我从任何线程写入全局int
时-该值不会在自己的线程中更新,也不会在其他线程中更新(iPlcWriteReal=34;)
有3个线程,每个线程内部都有一个wihile(1)循环->
读取数据/Web服务器/存档数据
使用互斥锁函数lock&unlock,我没有成功
用指针&malloc
我也没有运气。
我还通过线程传递了一个指针-地址总是正确的-但是值没有被更新
当我不使用while(1)-循环时,与全局数据的通信工作正常-当我在pthreads中使用任何循环并写入全局值时,是否存在任何问题?
可能是同步/更新功能?我发现了我的问题->问题出在fork()上 Fork()从他自己的进程中复制,并使用共享/全局数据中的实际值。 通过Fork进程,您不能直接访问全局数据 我在pthread中创建了一个pthread,而不是fork,现在它可以工作了
Thx这就是为什么并发编程真的很难…@KerrekSB-没那么难-女性总是这么做!一边唠叨,一边飞,一边擦婴儿的屁股!如果运气好的话,我会同时被打屁股!!!!老实说,您认为我们应该如何回答这个问题?我认为如果您发布完整的代码,您将有更大的机会获得实际帮助。或者更好的是,一个非常精简的代码版本,它显示了关键的部分。比如:一个全局变量,访问它的两个pthread,预期结果,实际结果。只要我的2美分。