NSThread VS pthreads - PullRequest
       36

NSThread VS pthreads

6 голосов
/ 05 декабря 2010

В чем разница между NSThread и pthread? Использует ли NSThread pthread в качестве своей внутренней реализации и действительно ли нам нужны дополнительные издержки NSThread, когда pthreads достаточно, особенно на iPhone.

Ответы [ 2 ]

9 голосов
/ 05 декабря 2010

Не знаю точно, если NSThread использует библиотеку pthreads внутри.Возможно, так и есть, но поскольку у нас нет исходного кода для NSThread, мы действительно не знаем.

Разница в том, что pthread - это библиотека C и NSThread является библиотекой Objective-C .Но оба они выполняют одинаковую функциональность.

Необходима библиотека Objective-C , если вам нужно использовать ее в сочетании с другими частями Objective-C API.То есть, вы не сможете хранить pthread в NSArray.

1 голос
/ 14 июня 2012

Насколько я знаю, NSThread не использует p-потоки, если только Apple радикально не изменила ситуацию.Корни OOPC были слишком рано для стандарта POSIX (pthreads появился в 1c, я думаю, это был 1995 год).Это одна из многих критических замечаний, направленных на текущую среду выполнения Objective-C.См. http://www.jot.fm/issues/issue_2009_01/article4.pdf Однако вы можете получить доступ к pthreads в Objective-C через стандартные библиотеки C.Мы фактически сделали это предположение в проекте и столкнулись с проблемами при взаимодействии с библиотекой, которую мы создали с помощью pthreads (это было вокруг циклов выполнения с NSNotificationQueue).

...