2011-04-08 9 views

cevap

7

Sorunuzun gerçekten ima ettiği şekilde çalışmıyor. Varsayılan olarak, ana iş parçacığıyla ilişkili bir ana dağıtım sırası ve eşzamanlı olan üç genel sıra (sırasıyla yüksek, varsayılan ve düşük öncelikler) vardır.

Eşzamanlı sıralar, belirli bir iş parçacığıyla ilişkilendirilmek yerine kendi iş parçacığı kaynaklarını yönetir.

Aslında, dispatch_queue_create() man sayfasında oldukça spesifik diyor ki:

“Kuyruklar eşzamanlı çalıştırabilir yürütme ve bağımsız kuyruklar gönderilen blokların herhangi bir spesifik konuya bağlı değildir.”

Gönderim semaforlarını gönderim sıralarının dışında kullanabileceğinize (sorunuzun diğer kısmı) ilişkin cevabınız evet, yapabilirsin. Mach semaforlarının üzerine uygulandılar ve her yerde çalışmalılar. Kodu burada görebilirsiniz:

http://opensource.apple.com/source/libdispatch/libdispatch-84.5.5/src/semaphore.c