2009-11-24 57 views
3

那麼我有一個應用程序使用Objective C & c + +,但出於便攜性的原因,我試圖儘可能多地使用C++ ....現在我面臨一些問題這需要線程我正在考慮使用pthread而不是NSThread ...是否可以使用pthread?蘋果公司是否會通過拒絕我在appstore上的應用程序來懲罰我?我們可以在iPhone應用程序中使用pthread而不是NSThread

回答

7

NSThread圍繞pthread反正

我看不出有任何理由使用pthread會導致拒絕從蘋果公司的內置

+6

是的。實際上,使用pthreads創建一個線程並從該線程調用[NSThead currentThread]以獲取pthread的NSThread版本或類似地,從任何NSThread創建的線程調用pthread_self都沒有問題。 – 2009-11-24 23:28:42

+0

@蘋果是否知道我們使用哪種技術?在這種情況下是pthread或NSThread。如果是的話,蘋果迫使開發人員使用任何技術?謝謝:) – hqt 2014-09-14 15:29:27

+0

查看https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html - Apple說:「儘管NSThread類是在Cocoa應用程序中創建線程的主要接口,你可以自由使用POSIX線程,如果這樣做對你來說更方便的話。「所以,如果做得對,應該沒有問題。 – JustAMartin 2017-01-21 00:21:11

1

我的應用程序使用並行線程API,改變從SCHED_OTHER調度策略來SCHED_FIFO,並改變線程的優先級。 它運作良好。

但是,我避免在線程中使用Cocoa touch框架API,因爲我不知道pthread而不是NSThread的副作用。

3

NSThread大多是圍繞pthread語義的包裝。

優點: - 當NSThread退出 NSThreadWillExitNotification通知 - 一個的NSMutableDictionary線程本地存儲

限制: - 你只能創建分離NSThread

要知道,可可需要知道你想做多線程。首先分離虛擬NSThread以便應用程序可以是considered multi-threaded,這一點很重要。

相關問題