0

ピア間でファイルを共有する小さなクライアント/サーバーのデモを書いています。ピアがメイン サーバーから IP アドレスのリストを取得すると、メイン スレッドはそれぞれのファイルごとにスレッドを作成します。プロセスは次のようになります。

  • メインスレッドはサーバーからファイルのリストを取得します
  • ファイルごとに作成されたスレッド (切り離された)
  • 作成された各スレッドで、指定された/ファイルに関連付けられたピアに接続します
  • スレッドはファイルをチャンクでダウンロードします
  • スレッドは、ファイルが完了したことを通知します

スレッドを「クエリ」しようとすると、私の問題が発生します。各スレッドで、転送の進行状況を追跡します。メイン スレッドで、ユーザーがすべての転送の進行状況を確認できるようにしたいと考えています。そうするための最良の方法は何ですか?もっと良い方法があるはずですが、pthread_killを使用して各スレッドにそれぞれシグナルを送信することを考えていました。誰かがアイデアを持っているなら、私はそれを聞きたいです.

4

1 に答える 1

1

スレッドを作成するときは、必要なものvoid *を指す a を含めます。あなたの例では、進行状況の値の配列を宣言し、そのうちの 1 つのアドレスを作成する各スレッドに渡し、必要に応じてスレッドに単純な更新を実行させ、メイン スレッドで値を定期的にチェックできます。

そのパラメーターを何かに既に使用している場合は、この新しい値と既に使用しているものを含む構造体を作成し、そのアドレスを渡して、スレッドが必要なものをすべて取得できるようにする必要があります。

于 2012-09-21T20:18:11.153 に答える