NSOperation Grand Central Dispatch vs
İOS için eş zamanlı programlama öğreniyorum. Şimdiye kadar NSOperation
/NSOperationQueue
GCD
hakkında bir şeyler okumuştum.GCD
ve yardımcısı üzerinde NSOperationQueue
versa kullanma nedenleri nelerdir?
Sesler GCD
NSOperationQueue
her iki uzak soyut gibi kullanıcı NSThreads
açık oluşturma. Ancak iki yaklaşım arasındaki ilişki açık değildir herhangi bir geribildirim takdir!
CEVAP
GCD
düşük seviye C tabanlı API görev tabanlı bir eşzamanlılık modeli çok basit kullanım sağlar. NSOperation
NSOperationQueue
Objective-C sınıfları benzer bir şey yapmak. NSOperation
ilk, ama 10.6 olarak tanıtıldı ve, NSOperationQueue
4 ve arkadaşları DAHİLİ olarak uygulanır GCD
kullanarak iOS.
Genel olarak, sizin ihtiyaçlarınıza uygun soyutlama en üst düzeyde kullanmalısınız. Bu genellikle NSOperationQueue
desteklemediği bir şey yapmak için gerekli olmadıkça GCD
yerine NSOperationQueue
kullanması gerektiğini anlamına gelir.
Not NSOperationQueue
değil bir "basitleştirilmiş" sürümü GCD; aslında, orada pek çok şey yapabileceğiniz çok basit bir şekilde NSOperationQueue
Bu çok çalışma ile saf GCD
. Bant genişliği kısıtlı sıralar bir kerede sadece N işlemler; işlemler arasında bağımlılıkları kurarak çalıştırın. (örnek: Çok basit iki NSOperation
,)*.* 21 çok zor Apple GCD NSOperation
ile çok güzel bir nesne dostu bir API oluşturmak edebilmek için zor işi yaptı. Bir nedeniniz yoksa işlerini yararlanın.
Uyarı:
Gerçekten sadece NSOperationQueue
sağlayan bir blok göndermek gerekir, ve ek işlevsellik gerek yok eğer diğer taraftan, GCD kullanarak yanlış bir şey yok. Sadece emin olun bu iş için doğru araçtır.
ıPhone - Grand Central ana iş parçacığ...
Grand Central (GCD) vs performSelector...
Grand Central kullanılarak dispatch_sy...
NSOperation ve NSOperationQueue çalışa...
İPhone NSOperation...