Должен ли NSStream с Bluetooth-связью требовать отдельного потока?
Используя ExternalAccessory для общения с устройством Bluetooth, я использую ввод и вывод NSStreams
предоставлено EASession
отправлять на него сообщения.
В Apple EADemo
Например, он планирует оба потока в цикле выполнения основного потока. Тем не менее, я заметил, что во многих сетевых приложениях, которые используют NSStream
Разработчики предпочитают создавать отдельный поток для выполнения операций чтения / записи и планировать потоки для цикла выполнения нового потока.
Для устройства Bluetooth, должно ли быть реализовано такое поведение (создание отдельного потока) или планирование его в цикле выполнения основного потока не вызовет серьезных проблем с блокировкой?
1 ответ
В общем случае предпочтительно делать как можно меньше в основном потоке. Я думаю, что EADemo делает это в основном потоке, так как в контексте небольшого примера это применимо, но в контексте большого производственного приложения это не так.