Портирование приложения с помощью fork () в pthread_create () - PullRequest
0 голосов
/ 28 июня 2011

Я портирую приложение для Linux на iphone, и я хотел бы знать, сколько нужно переписать, чтобы сделать его многопоточным, а не многопроцессорным приложением.

Также, если я просто заменяю раздвоенный код вызовом функций в другом потоке, я получаю exec_bad_address в казалось бы случайных местах в моем потоке выполнения ... Кто-нибудь знает, почему это может иметь место?

Спасибо!

1 Ответ

2 голосов
/ 28 июня 2011

Это то же самое усилие, которое вы предприняли бы при переводе вашего приложения в многопоточное на платформе Unix.Простая замена разветвленного кода вызовами pthread_create () почти всегда недостаточна.Например, вам может потребоваться переписать весь код, который поддерживает межпроцессное взаимодействие.Скажем, один процесс разветвляется на другой, и тогда два процесса обмениваются данными по каналу.Конечно, это больше не будет работать.И т.д. Вы поняли.

Кстати, хотя pthread-ы доступны и отлично работают на iOS, вам настоятельно рекомендуется использовать другие технологии, доступные в iOS.Для получения дополнительной информации, пожалуйста, прочитайте

Руководство по программированию параллелизма

, в частности, раздел под названием «Миграция из потоков».

Для получения подробной информации о потоках,см.

Руководство по программированию потоков

...