documentation açıklandığı gibi, bir genel sıra eşzamanlı görevler için iyidir (örneğin eşzamansız olarak çeşitli görevleri gönderirsiniz ve eşzamanlı olarak çalışırlarsa çok mutlu olurlar) ve teorik sorunlarla karşılaşmak istemiyorsanız kendi sıranızı yaratma ve yok etme yükü.
kendi kuyruğunun oluşturma Bir seri kuyruğu gerekirse çok yararlıdır (yani oturum sevk bloklar teker teker yürütülecek gerekir). Bu, her bir görevin öncekine bağlı olduğu veya birden fazla iş parçacığı tarafından paylaşılan bazı kaynaklarla etkileşimin koordine edildiği durumlarda, birçok senaryoda yararlı olabilir.
az yaygın, ancak eşzamanlı kuyrukta birlikte barriers kullanmanız gerekiyorsa siz de kendi kuyruğunu oluşturmak isteyecektir. Bu senaryoda, eşzamanlı bir kuyruk oluşturun (DISPATCH_QUEUE_CONCURRENT
seçeneği ile dispatch_queue_create
) ve bu sırayla birlikte engelleri kullanın. Küresel kuyruklarda asla engel kullanmamalısınız. sonra bir sıra oluşturmak, bir seri sıra ihtiyaç (ya da engelleri kullanmaya gerek) eğer
Benim genel danışmanı olduğunu. Eğer yapmazsanız, devam edip global sırayı kullanın ve kendi yarattığınız yükü atlayın. Bir eşzamanlı kuyruğu istiyorum, ancak birçok operasyonlar aynı anda çalıştırabilirsiniz nasıl kontrol etmek isterseniz
, ayrıca bir maxConcurrentOperationCount
özelliğine sahiptir NSOperationQueue
kullanarak düşünebilirsiniz. Bu, ağ işlemleri yaparken yararlı olabilir ve sunucunuza gönderilmek üzere çok fazla eş zamanlı istek istemezsiniz.
Ya .. u yanlış cevap aldı. Robert Ryan cevabı daha uygun –