android - Android应用程序中的线程安全?

标签 android thread-safety

我正在编写一个 Nexus 7 应用程序并继承了一个骨架应用程序。来自另一个开发者。我对其进行了 findbugs 分析,findbugs 警告了 SimpleDateFormat 的静态实例:

正如 JavaDoc 所述,DateFormats 对于多线程使用来说本质上是不安全的。检测器发现了对通过静态字段获得的 DateFormat 实例的调用。这看起来很可疑。

我的应用中没有任何明确的线程创建或后台操作。因此我需要考虑上述警告,还是可以忽略它?我不确定 Android 应用程序中实际运行的线程是什么(UI 服务线程除外)。

日期格式对象在构造函数中设置如下:

private static final SimpleDateFormat shortCsvDateFormat = new SimpleDateFormat("EEE MMM d yyyy");

最佳答案

抱歉,“不”丢失了。

这应该不是问题。

当然,这可能是错误的来源,但可能性不大。如果您查看 SimpleDateFormat 的文档,您会看到有两种方法可以应用新模式。

因此有可能一个线程更改模式而另一个线程使用旧模式。但考虑到变量的名称,这看起来不太可能。 (我假设 CSV 模式在运行时不会改变。)

如果final变量封装在CSVWriter类之类的,可能性就更小了。

关于android - Android应用程序中的线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671535/

相关文章:

android - 如何仅从 HTTPResponse RestApi Android 获取字符串

android - 如何捕获 SearchView 清除按钮单击?

Python:具有短生命周期键的线程安全字典,这是正确的吗?

java - 线程和同步

c++ - 在C++中使用线程交替打印奇数和偶数打印

iphone - 在多种设备(手机,平板电脑,游戏机等)上进行自动质量检查

Android:如何在 fragment 中创建带有 float RecyclerView 的叠加层

android - 在 FlutterSplashView.java 为我发布的一个应用程序获取 ClasscastException

c++ - 只读操作的 std::map 线程安全

Android线程和数据库锁定