NSURLConnection
複数の非同期接続が内部でどのように処理されるか知りたいですか? 内部バックグラウンドスレッドを使用して実行することは知っていますが、コードで2つの非同期を同時に作成している場合、NSURLConnection
内部で2つのスレッドを作成して並行して実行するか、2番目の接続が最初に完了するのを待ちますか? 簡単に言えば、複数の非同期NSURLConnection
が同時実行を達成する方法を確認してください。
3 に答える
「NSOperationQueue」を使用してそれを使用し、NSOperationsを使用してリクエストを実行できるその他のオプション。詳細については、 http://www.icodeblog.com/2012/10/19/tutorial-asynchronous-http-client-using-nsoperationqueue/を参照してください。
ありがとう、
ジム
NSURLConnection
接続を開始した後(非同期NSURLConnection
を作成してメインスレッドで開始する必要があります!)、メインスレッドでデリゲートメソッドとデータデリゲートメソッドを呼び出した後、各非同期は独自のスレッドで実行されます。
I guess it will run in parallel. You can have a look on WWDC Session Video about network programming.
Apple engineer said handling url request one by one is expensive, running them in parallel is much more reasonable. The reason is, for processing a request, actually most of the time is spent on latency, not logic processing in devices and servers. So, handling requests parallel will efficiently reduce time waste for latency.
so I guess they wont do async NSURLConnection one by one because it's contradicting this basic theory.
Besides, I have tried to download images Async using NSURLConnection. I sent out a few request once. like
for ( i = 1 to 4) {
send request i
}
The response is also not in sequence.