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

我想到的

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

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

天蓬老师
天蓬老师

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

모든 응답(21)
刘奇

누군가 NSOperation이라고 했는데 저는 말하지 않겠습니다.
하지만 저는 GCD를 선호합니다. 이 문제는 장벽을 사용하여 해결할 수 있습니다.

으아아아

사실 저는 RAC를 선호하지만 결국 RAC는 Heavy Duty 프레임워크이고 이를 사용하는 회사는 많지 않습니다

으아아아
阿神

RxAndroid를 사용하세요. .zip 방법만 있으면 됩니다. .

洪涛

더 좋은 방법은 addDependecy 메소드가 있으므로 NSOperation을 사용하는 것입니다~

洪涛

자바스크립트의 경우:

  1. https://github.com/caolan/async
    비동기 병렬 처리와 직렬 처리가 매우 편리합니다

  2. jQuery의 Promise나 다른 라이브러리의 Promise 구현을 사용하세요 :)

Ty80

머지 정렬의 개념과 유사한 맵리듀스 방식을 배워보세요

迷茫

그냥 평소대로 dispatch_group_wait와 dispatch_group_notify를 사용하세요.

또한 모든 응답을 장벽 블록으로 받은 후 작업을 사용하기 위해 dispatch_barrier_sync/dispatch_barrier_async를 사용할 수도 있습니다. 그런 다음 이 블록은 실행되기 전에 모든 네트워크 요청이 완료될 때까지 기다립니다.

黄舟

안드로이드로 문의하시는지, iOS로 문의하시는지 모르겠습니다. 안드로이드라면 CountDownLatch를 사용하여 스레드를 제어하세요

PHPzhong

Java에서는 동시 패키지의 향후 API를 사용하여 여러 스레드에서 별도의 요청을 구현한 다음 모든 응답 후에 결과를 처리할 수 있습니다.

左手右手慢动作

iOS용
처리를 위한 직렬 대기열을 만듭니다. 외부 동시 요청에는 영향을 주지 않습니다.

黄舟

JS에서는 어떻게 구현하나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿