Трансляция доставки и производительности - PullRequest
3 голосов
/ 28 июля 2011

Я предполагаю, что широковещательные сообщения отправляются в очередь сообщений принимающего потока и доставляются через петлитель.Передаются ли широковещательные сообщения перед другими сообщениями в очереди сообщений или просто добавляются в конец очереди?У меня нет особой нужды или чего-то в этом роде, просто хотелось узнать из любопытства.

Каковы издержки производительности (ЦП и память) при использовании широковещательных рассылок для IPC между службой и операцией?

GL

Ответы [ 2 ]

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

Передаются ли широковещательные сообщения перед другими сообщениями в очереди сообщений или просто добавляются в конец очереди?

Я думаю, они просто идут в конец очереди. Самый простой способ проверить это - post() пара Runnables в очередь, в которой каждый немного спит, а затем отправить себе широковещательную рассылку. Если все Runnables были обработаны перед трансляцией, то она прошла до конца. Если трансляция была обработана ранее Runnables, то она была введена на фронт.

Каковы издержки производительности (ЦП и память) при использовании широковещательных рассылок для IPC между службой и деятельностью?

Скромно, как предполагает @jlindenbaum. Я бы не советовал пытаться запустить тысячи вещей, и есть более легкие решения для незавершенного производства (например, Messenger).

1 голос
/ 28 июля 2011

Я никогда не замечал значительную нагрузку на устройства, использующие это.

Это единственный "здравый" способ, который я обнаружил, для обмена данными между Сервисом и Деятельностью, не вызывая проблем в потоках пользовательского интерфейса..

...