プログラムで fork と threading を混在させると、特にロック、パイプ、ファイル記述子などの共有リソースを扱う場合に、不思議な動作が発生することが多く、非常に問題になる可能性があると聞いたことがあります。しかし、危険が正確に何であり、いつ発生する可能性があるかを完全に理解することはできません. この分野の専門知識を持つ人が、そのような環境でプログラミングする際に落とし穴とは何か、注意が必要なことをもう少し詳しく説明してくれると助かります。
たとえば、さまざまなリソースからデータを収集するサーバーを作成したい場合、私が考えた 1 つの解決策は、サーバーに一連のスレッドを生成させ、各スレッドが別のプログラムを呼び出して実際の作業を実行し、パイプを開くことです。子からデータを取得します。これらのスレッドはそれぞれ独自の作業に応答し、双方向のデータ交換はありません。データが収集されると、メイン スレッドにはキューがあり、これらのワーカー スレッドは結果をキューに入れるだけです。このソリューションで何が問題になる可能性がありますか?
私の例のシナリオに「答える」だけで答えを狭めないでください。例に関係なく、クリーンなデザインを提供するのに役立つ提案、代替ソリューション、または経験は素晴らしいでしょう! ありがとう!