検索

ホームページ  >  に質問  >  本文

java - 发送10个网络请求,然后再接收到所有回应之后执行后续操作,如何实现?

我想到的

for iOS
1.用dispatch_group实现
2.用RunLoop实现   

还有没有其他的比较好的实现方式,求关于并发编程的文章.

天蓬老师天蓬老师2803日前1585

全員に返信(21)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:17:12

    では、ネットワークリクエストはすべて非同期ですが、同じ方法で処理されるのでしょうか?

    返事
    0
  • 迷茫

    迷茫2017-04-17 16:17:12

    ブロックまたはクロージャを作成します。ネットワーク リクエストを送信し、completionHandler で自身を呼び出して次のリクエストを送信します。

    返事
    0
  • 迷茫

    迷茫2017-04-17 16:17:12

    Android は間違いなく RxJava、iOS は RxSwift ですか?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 16:17:12

    dispatch_group_t group =dispatch_group_create();
    dispatch_group_enter(group);
    [リクエスト 1 完了:^(BOOL 成功、ID 応答){

    リーリー

    }];

    dispatch_group_enter(group);
    [リクエスト 2 が完了しました:^(BOOL 成功、ID 応答){

    リーリー

    }];

    dispatch_group_enter(group);
    [リクエスト 3 完了:^(BOOL 成功、ID 応答){

    リーリー

    }];

    dispatch_group_enter(group);
    [リクエスト 4 完了:^(BOOL 成功、ID 応答){

    リーリー

    }];
    .
    .
    .
    .

    dispatch_group_notify(group,dispatch_get_main_queue(), ^{

    リーリー

    });

    返事
    0
  • 黄舟

    黄舟2017-04-17 16:17:12

    GCD は常に C/C++ コードに使用できるため、GCD を使用する方が良いと思います

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 16:17:12

    AFNetworkingをご利用の方はAFURLConnectionOperation batchOfRequestOperations: progressBlock:completionBlock:

    もご利用いただけます

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:17:12

    GCD のグループを使用する

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 16:17:12

    Android の RxJava を使用して簡単に実装できます。
    もちろん、スレッド同期補助クラス CountDownLatch の実装を試すこともできます。CountDownLatch の使用方法については、次のブログを参照してください:
    http://www.liuling123.com/2013/08/countdownlatch -demo.html

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 16:17:12

    このような問題に直面したとき、私は通常、リソース変数を設定し、リソースを 10 に初期化し、スレッドを実行してリソースの数を監視します。リソースが完了するたびに、同時タスクが開始され、リソースが 0 になると、リスニング スレッドが停止され、後続の操作が完了します。

    これは愚かな考えです。結局のところ、ほとんどの言語はこの方法で実装できます。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 16:17:12

    Java 独自の同時実行フレームワークは、あなたが言及した将来の問題の解決をサポートします

    返事
    0
  • キャンセル返事