我想到的
for iOS
1.用dispatch_group实现
2.用RunLoop实现
还有没有其他的比较好的实现方式,求关于并发编程的文章.
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(), ^{
雷雷});
高洛峰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
看到大神們的答案我震驚了,面對這樣的問題我往往是手動實現的,我一般會設置一個資源變量,初始化資源為十,跑一個線程監聽資源數,然後開始並發任務,每完成一個資源減一,當資源為零時停止監聽線程,完成後續操作。
這是笨辦法。在我對某門語言不是很了解的時候我都會這樣用,畢竟大部分語言都能這樣實現。