2013-04-02 5 views
0

Когда я впервые прочитал о NSZone и что это было, я очень обрадовался перспективам использования зон для изоляции пространств памяти потоков, чтобы я мог эффективно убить поток и удалить его зону. Но, похоже, NSZone действительно не может использоваться для этой цели в конце концов.Цели-C нити и NSZones

Так что мне интересно, есть ли способ изолировать поток в Objective-C до определенного блока памяти, который можно убить и освободить безопасно?

В противном случае существуют способы генерации дочерних процессов (которые, безусловно, имеют собственные пространства памяти) в Objective-C, подобно тому, как Chrome делает что-то?

+3

NSZone устарел для *** долго ***, мой друг. – CodaFi

+0

Bummer ......... – devios1

ответ

2

Межпроцессное общение - это тема, которая слишком сложна для того, что вы пытаетесь реализовать. До тех пор, пока вы просто ищете представление какой-либо работы, которую вы можете отменить и освободить, подкласс NSThread идеален. Переопределяя -main, вы можете воспользоваться всеми преимуществами NSOperation (не заботясь точно , с которыми работает нить,, абстракция от фактической резьбы, инкапсуляция и т. Д.), Но в более конкретной и отменяемой форме.

+0

Сложно или нет, мне любопытно узнать больше об этом. – devios1

+0

В OS X процессы - это либо демоны, запускаемые через launchd или другие приложения. Если первый, вы можете использовать либо NSTask, либо придерживаться более низкого уровня мерзких вещей UNIX, если последний, [используйте XPC] (http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/ BPSystemStartup/Chapters/CreateXPCServices.html) – CodaFi

+0

Очень круто, спасибо. – devios1

Смежные вопросы