pthread でのグローバル変数の書き込みに問題があります。私のコードの頭で定義されたいくつかの変数 - >
int iPlcWriteReal;
いくつかの関数を作成し、それらを pthread 経由で呼び出しました。
Main では、スレッドが呼び出されます ->
iThreadResult = pthread_create(&threadWeb, NULL, pThreadWebserver, &fTest);
pthread_join(threadWeb, NULL);
問題は、任意のスレッドからグローバルを書き込むときですint
。値は、他のスレッドではなく、独自のスレッドで更新されません (iPlcWriteReal = 34;)。
3 つのスレッドがあり、すべてのスレッドには内部に wihile(1) ループがあります-> Read Data / Webserver / Archive Data
Mutex 関数 lock&unlock では成功しませんでした。
ポインターとmalloc
私も運がありませんでした。スレッドを介してポインターも渡しました-アドレスは常に正しいものでしたが、値は更新されませんでした。
while(1) を使用しない場合、グローバル データへの通信は機能します - ループ - グローバル値を書き込む pthreads でループを使用する場合、問題はありますか? 多分同期/更新機能?