Я использую NSOperationQueue
для управления фазой приложения iOS, которая довольно длинная, поэтому я хотел бы управлять ею асинхронно.Внутри этой фазы я выделяю большие массивы в C, используя непосредственно calloc
функции.Под большим я имею в виду двумерный массив с плавающей запятой 1024x256 и тому подобные вещи.
Если все находится в основном потоке, то приложение блокируется во время вычислений, но все идет хорошо, если вместо этого я перенесу тяжелую часть вNSInvocationOperation
тогда я получил много странных результатов, иногда с помощью отладчика я получаю странное сообщение в консоли о том, что
Нет доступной памяти для программы: небезопасно вызывать malloc
поэтому мне было интересно, имеют ли потоки, управляемые очередью операций, некоторые другие ограничения по сравнению с основным потоком, и в случае, что лучше сделать, чтобы обойти эту проблему.