NSThread ve pthread arasındaki fark nedir? NSThread, pthread'i kendi iç uygulaması olarak kullanıyor ve pthreads özellikle iPhone'da yeterli olduğunda NSThread'in ekstra yüküne gerçekten ihtiyacımız var mı?NSThread VS pthreads
cevap
NSThread
içeriden pthreads kitaplığını kullanıp kullanmadığımı bilmiyorum. Muhtemelen yapar, ama biz NSThread
için kaynak kodumuz olmadığı için gerçekten bilmiyoruz.
fark pthread
bir Cı kütüphanesi ve NSThread
bir amaç-C kütüphanesi olmasıdır. Ama ikisi de aynı işlevselliği sağlıyor. Eğer Amaç-C API diğer kısımları ile kombinasyon halinde kullanmak için gerekirse
bir amaç-Cı kütüphane için ihtiyaç vardır. I.E. NSArray
ürününde mağazasını ürününe kaydedemezsiniz.
NSThread'in bildiği kadarıyla Apple bir şeyleri radikal olarak değiştirmediği sürece p-thread'leri kullanmıyor. OOPC'nin kökleri POSIX standardı için çok erken idi (pthreads 1c'de geldi, 1995). Bu, mevcut Hedef-C çalışma zamanlarında düzeltilen birçok eleştiriden biridir. Bkz. http://www.jot.fm/issues/issue_2009_01/article4.pdf Ancak, standart C kütüphaneleri aracılığıyla Objective-C'de pthreads'e erişebilirsiniz. Biz aslında bu varsayımı bir projede yapmıştık ve pthreads kullanarak oluşturduğumuz bir kütüphaneyle etkileşimde bulunduğumuzda (bu, NSNotificationQueue
ile çalışma döngülerindeydi) sorunlara yol açmıştık.
bilmiyorum '9 libsystem_pthread.dylib ama NSThread aslen pthreads dışında bir şey kullanılmış olması oldukça mantıklıdır (e .g. Mach iş parçacığı API'sinin doğrudan kullanımı. Ama bence bugün aslında pthreads kullanıyor. Kanıt: /System/Library/Frameworks/Foundation.framework/Foundation "NSThread * _NSThreadGet0 (pthread_t)" dizesini içerir. Pthread'i NSThread'e dönüştürmek için belgesiz bir API'ye benziyor mu? NSThread, muhtemelen sadece bir pthread sarıcı olduğunu ima eder (ki bu da Mach konuları için sadece bir sarıcıdır) –
Bence pthread kullanır. Pablo'nun cevabına gönderdiğim çağrı yığınlarını görün. –
- 1. QThreads Vs Pthreads
- 2. NSOperasyonda NSThread uyku kullanma
- 3. NSThread sleepfortimeinterval ana iş parçacığı
- 4. Bir koşul değişkeninin işaretlenmesi (pthreads)
- 5. Pthreads ile Konuları Killing - C
- 6. pthreads içindeki koşucunun tanımlanmamış referansı
- 7. Pthreads PHP uzantısı Ubuntu'da nasıl kullanılır?
- 8. pthreads kullanırken arka plan konuları (güzel, öncelikli)
- 9. Pthreads ile ilgili başka bir problemin tartışılmasıyla,
- 10. NSThread sayısıyla ilgili iki bağımsız değişkenli arama seçici
- 11. şimdi NSThread otomatik olarak otomatik oluşturucu oluşturmuyor mu?
- 12. Her NSThread otomatik olarak bir gönderim kuyruğuna sahip midir?
- 13. libspe vs libspe2? Fark ne?
- 14. pthreads: okuyucu/yazıcı kilitleri, okuma kilidini okuma kilidini yükseltme
- 15. karşılaştırma GCD vs. performSelectorInBackground: dispatch_async arka planda değil
- 16. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 17. & vs * ve | VS +
- 18. SpiderMonkey vs JavaScriptCore vs?
- 19. VS
- 20. VS
- 21. IDataErrorInfo vs ValidationRule vs Exception
- 22. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 23. visualvm vs JProbe vs JProfiler
- 24. _mm_load_ps vs. _mm_load_pd vs. etc
- 25. pycuda vs theano vs pylearn2
- 26. is_numeric() vs is_float() vs is_int()
- 27. TextColor vs TextColorPrimary vs TextColorSecondary
- 28. GridView vs DataList vs için Repeater vs ListView 'in performansı
- 29. Qt: UI ile vs vs ile xml vs ile qml
- 30. Barındırma PowerShell: PowerShell vs. Runspace vs. RunspacePool vs. Pipeline
NSThread, pthreads internal AFAIK kullanır. Pthreads, iplik idaresi ve senkronizasyon için daha esnek ve güçlü mekanizmalar sağlayabilir, örneğin başka bir iş parçacığı bitene kadar beklemek gibi. – Andy
Bazı çağrı yığınlarını bir çarpışmadan arıyorum ve pthreads dolu. Yani NSThread pthread kullanır demek olmaz, ama bu anlatıyor: \t __NSThread__start__ + 1024', '7 \t libsystem_pthread.dylib \t _pthread_body + 240', ' 8 \t libsystem_pthread.dylib '6 \t Vakfı \t _pthread_body + 282', \t thread_start + 4 ' –