java - 发送10个网络请求,然后再接收到所有回应之后执行后续操作,如何实现?
天蓬老师
天蓬老师 2017-04-17 16:15:12
0
21
1613

我想到的

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

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(21)
刘奇

誰かが NSOperation と言ったが、私は言いません。
しかし、私は GCD の方が好きです。この問題は、バリアを使用して解決できます:

リーリー

実際には RAC の方が好きですが、結局 RAC は頑丈なフレームワークなので、使用している企業は多くありません

リーリー
いいねを押す +0
阿神

RxAndroid を使用します。必要なのは .zip メソッドだけです。 。

いいねを押す +0
洪涛

addDependecy メソッドがあるため、より良い方法は NSOperation を使用することです~

いいねを押す +0
洪涛

JavaScript の場合:

  1. https://github.com/caolan/async
    非同期並列処理とシリアル化を扱うのに非常に便利です

  2. jQuery の Promise または他のライブラリの Promise 実装を使用します:)

いいねを押す +0
Ty80

マージソートの考え方に似たマップリデュースメソッドから学びましょう

いいねを押す +0
迷茫

通常はdispatch_group_waitとdispatch_group_notifyを使用してください。

dispatch_barrier_sync /dispatch_barrier_async を使用して、すべての応答を受信した後の操作をバリア ブロックとして使用することもできます。その後、このブロックはすべてのネットワーク リクエストが完了するまで待機してから実行されます。

いいねを押す +0
黄舟

Android と iOS のどちらについて質問しているのかわかりません。Android の場合は、CountDownLatch を使用してスレッドを制御します。

いいねを押す +0
PHPzhong

Java では、同時実行パッケージの将来の API を使用して、複数のスレッドからの個別のリクエストを実装し、すべての応答後に結果を処理できます。

いいねを押す +0
左手右手慢动作

iOS の場合
処理用のシリアル キューを作成します。外部の同時リクエストには影響しません。

いいねを押す +0
黄舟

JS で実装するにはどうすればよいですか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート