私は現在、select()
を使用して複数のクライアントを処理するマルチクライアントサーバーに取り組んでいます。しかし、クライアントが重い計算を必要とするメッセージを送信する場合、クライアントからの他のメッセージに応答できるように、pthread_create()
を使用して新しいスレッドを作成する必要があります。そのクライアントの計算が完了したら、クライアントにメッセージを返す必要があります。しかし、スレッドが終了したかどうか、最終結果を取得する方法を私がどのように知ることができるのか分かりません。明らかに私はこの新しいスレッドを実行している間私のサーバープログラムをブロックするので、pthread_join()
を使用することはできません。それでCは、その子スレッドの最終結果を得るために使用できる関数を提供していますか?グローバル変数の使用も避けたい。C - pthreadを使用し、戻り値を待っています
を確認することができます
'それで、Cはその子スレッドの最終結果を得るために使用できる関数を提供していますか?'はい、select()。 – ThingyWotsit
あるいは、スレッドに関連するfdを渡し、直接返信させてください。 – ThingyWotsit
@ThingyWotsit私はselect()がファイル記述子でのみ動作すると考えました:| –