我想到的
for iOS
1.用dispatch_group实现
2.用RunLoop实现
还有没有其他的比较好的实现方式,求关于并发编程的文章.
PHP中文网2017-04-17 16:17:12
dispatch_group_t 그룹 = dispatch_group_create();
dispatch_group_enter(group);
[요청1 완료됨:^(BOOL 성공, ID 응답){
}];
dispatch_group_enter(그룹);
[요청2 완료:^(BOOL 성공, ID 응답){
}];
dispatch_group_enter(그룹);
[요청3 완료:^(BOOL 성공, ID 응답){
}];
dispatch_group_enter(그룹);
[요청4 완료:^(BOOL 성공, ID 응답){
}];
.
.
.
.
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
으아아아});
高洛峰2017-04-17 16:17:12
AFNetworking
를 사용하시는 분들은 AFURLConnectionOperation batchOfRequestOperations: progressBlock:completionBlock:
ringa_lee2017-04-17 16:17:12
Android에서는 RxJava를 사용하여 쉽게 구현할 수 있습니다.
물론 스레드 동기화 보조 클래스인 CountDownLatch를 사용해 볼 수도 있습니다. CountDownLatch 사용에 대해서는 다음 블로그를 참조하세요.
http://www.liuling123.com/2013/08/countdownlatch-demo.html
PHP中文网2017-04-17 16:17:12
마스터님들의 답변을 보고 깜짝 놀랐습니다. 이런 문제에 직면했을 때 저는 종종 리소스 변수를 설정하고 리소스를 10으로 초기화하고 스레드를 실행하여 리소스 수를 모니터링합니다. 그런 다음 동시 작업을 시작합니다. 리소스가 완료될 때마다 리소스가 1씩 감소하고 리소스가 0에 도달하면 수신 스레드가 중지되고 후속 작업이 완료됩니다.
이건 어리석은 생각입니다. 특정 언어를 잘 모르는 경우에 사용하겠습니다. 결국 대부분의 언어는 이런 식으로 구현될 수 있습니다.