私はこのような構造体を持っています:
struct data{
int x;
int y;
}
そして私はこのようなスレッド関数を持っています:
void *threadFunction(void *item){
data *myData = (data*) item;
int first = 50;
int second = 10;
myData->x = first;
myData->y = second;
return(void*) myData;
}
main()で次のようなスレッド関数を呼び出します。
pthread_create(threadID, NULL, threadFunction, &item);
しかし、これを使用してスレッド関数からmain()に値を戻したい場合は、次のようにします。
struct data* returnedItem;
pthread_join(threadID, (void**) returnedItem;
cout << returnedItem->x << returnedItem->y;
私のプログラムは何もしないように見えるので、何が起こるかわかりません。コンパイルして実行しますが、どこかで無限にループするか、何かを待つだけです。何が起こっているのかまったくわかりません。何の反応もありません。私は何が間違っているのですか?pthread_joinステートメントから値を取得するためにmain()に欠けているものはありますか?たぶん私はステートメントの議論を台無しにしましたか?