Являются ли функции ведения журнала нижнего уровня Android потокобезопасными? ⇐ Android
-
Гость
Являются ли функции ведения журнала нижнего уровня Android потокобезопасными?
Безопасно ли использовать функции ведения журнала Android, такие как Log.d() и __android_log_print(), в многопоточном контексте? В частности, мне интересно, гарантировано ли отсутствие нестабильности и что отдельные сообщения журнала не будут чередоваться на уровне символов или иным образом смешиваться.
Казалось бы, эту информацию легко найти, но по какой-то причине мне не удалось найти ничего убедительного. Документация для Log и соответствующих встроенных функций, похоже, не решает эту проблему. В документации к Logger упоминается, что все методы потокобезопасны, но меня интересуют именно функции нижнего уровня.
Можно было бы ожидать, что эти функции будут потокобезопасными, учитывая, что ведение журналов из нескольких потоков, вероятно, является обычным явлением. Кроме того, по крайней мере по умолчанию в Android Studio каждое сообщение журнала включает идентификатор потока, и было бы странно, если средство ведения журнала поддерживает потоки, но не потокобезопасно.
Я очень сомневаюсь, что здесь есть о чем беспокоиться, но когда дело доходит до многопоточности, кажется, что гарантия была бы предпочтительнее, даже если кажется очевидным, что рассматриваемая функциональность должна быть потокобезопасной.
Это где-то задокументировано, и я просто пропустил это? Если нет, то разумно ли предполагать, что рассматриваемые функции являются потокобезопасными?
Безопасно ли использовать функции ведения журнала Android, такие как Log.d() и __android_log_print(), в многопоточном контексте? В частности, мне интересно, гарантировано ли отсутствие нестабильности и что отдельные сообщения журнала не будут чередоваться на уровне символов или иным образом смешиваться.
Казалось бы, эту информацию легко найти, но по какой-то причине мне не удалось найти ничего убедительного. Документация для Log и соответствующих встроенных функций, похоже, не решает эту проблему. В документации к Logger упоминается, что все методы потокобезопасны, но меня интересуют именно функции нижнего уровня.
Можно было бы ожидать, что эти функции будут потокобезопасными, учитывая, что ведение журналов из нескольких потоков, вероятно, является обычным явлением. Кроме того, по крайней мере по умолчанию в Android Studio каждое сообщение журнала включает идентификатор потока, и было бы странно, если средство ведения журнала поддерживает потоки, но не потокобезопасно.
Я очень сомневаюсь, что здесь есть о чем беспокоиться, но когда дело доходит до многопоточности, кажется, что гарантия была бы предпочтительнее, даже если кажется очевидным, что рассматриваемая функциональность должна быть потокобезопасной.
Это где-то задокументировано, и я просто пропустил это? Если нет, то разумно ли предполагать, что рассматриваемые функции являются потокобезопасными?
Мобильная версия