0

我目前正在尝试在构建视图期间实现一个初始化程序线程,以避免当 UI 线程被占用太久时 android 发出的“无响应”消息 - 而初始化程序线程仍在工作 UI 线程将显示一个简单的加载消息并响应方向变化等,当初始化线程完成时,UI线程将使用初始化线程初始化的资源重新生成视图。虽然我已经实现了一个 volatile 布尔值,以便两个线程传达初始化过程的当前状态,但我不确定是否有必要将所有已初始化的资源定义为 volatile,因为它们不会被同时访问两个线程。

任何建议将不胜感激。

4

1 回答 1

0

这在一定程度上取决于您如何使用 volatile 布尔值。它确实建立了先发生关系,因此:

volatile boolean done;
...

doStuff();
done = true;

done = true更改在另一个线程中可见时,在 (in doStuff()) 之前所做的更改也保证可见。

于 2013-09-06T21:35:36.673 回答