У меня есть два потока (основной и фон), они могут общаться через пару гнезд. Основной поток ожидает чтения из сокета. Фоновый поток загружает и обрабатывает файл, затем он должен отправлять эти данные в основной поток.Является ли эта модель безопасной с pthreads?
Это хорошая идея, чтобы отправить только указатель из фоновой нити через сокет? Могу ли я быть уверенным, что все данные будут в правильном состоянии, как только я получу указатель на него в основном потоке?
Я спрашиваю об этом, потому что мне интересно, могут ли быть проблемы с кэшированием памяти в процессоре, поскольку фоновый поток может работать на другом ядре.
Я работаю над iOS и OS X, и я могу интегрировать ожидание сокета в цикл запуска (используя CFSocket).
Я знаю, что использование GCD может быть лучше, но я хочу узнать pthreads.
Почему вы используете потоки, а не процессы, когда вы делитесь данными явно, отправив их через сокет? Если вы используете потоки, разделяемая память - естественный способ общения. – EOF
@EOF Это все из-за приложений iOS, у всех из них есть цикл запуска в основном потоке. Этот цикл цикла может быть настроен на ожидание сокета, а также возможность получать уведомления о взаимодействиях пользовательского интерфейса. Ожидание мьютекса не может быть сконфигурировано таким образом. – Beirs