Android 的底层日志功能线程安全吗?

问题描述 投票:0回答:1

Android 日志记录功能(例如

Log.d()
__android_log_print()
)可以在多线程上下文中安全使用吗?特别是,我想知道是否可以保证不会出现不稳定情况,并且各个日志消息不会在字符级别交错或以其他方式混乱。

这似乎应该是很容易找到的信息,但由于某种原因,我无法找到任何结论性的信息。

Log
相应的本机函数的文档似乎没有解决这个问题。在
Logger
的文档中提到所有方法都是线程安全的,但我特别想知道的是较低级别的函数。

考虑到从多个线程进行日志记录可能很常见,人们会期望这些函数是线程安全的。另外,至少默认情况下,在 Android Studio 中,每个日志消息都包含一个线程标识符,并且记录器具有线程感知能力但不是线程安全的,这似乎很奇怪。

我非常怀疑这里有什么需要担心的,但是当涉及到多线程时,似乎保证会更好,即使很明显所讨论的功能必须是线程安全的。

这是否记录在某处,而我刚刚错过了?如果不是,那么假设相关函数是线程安全的是否合理?

android logging thread-safety
1个回答
0
投票

作为一名 Android 开发者,我多年来使用过 Log.d()、Log.e() 等,并且在多线程调用日志时从未见过乱码日志或任何其他奇怪的东西。

© www.soinside.com 2019 - 2024. All rights reserved.