我目前正在尝试在构建视图期间实现初始化线程,以避免android在UI线程被捆绑太久时发出的“无响应”消息--而初始化线程仍在工作时,UI线程将显示简单的加载消息并响应方向更改等,并且当初始化线程完成时,UI线程将使用初始化线程初始化的资源重新生成视图。虽然我已经实现了一个易失性布尔值,以便两个线程通信初始化进程的当前状态,但我不确定是否有必要将所有初始化资源定义为易失性资源,因为它们不会被两个线程并发访问。一旦初始化线程终止,由初始化线程初始化的对象/变量是否对UI线程可见?
如有任何建议,将不胜感激。
发布于 2013-09-06 21:35:36
这在一定程度上取决于您如何使用易失性布尔值。它确实建立了一种发生在关系之前的关系,因此:
volatile boolean done;
...
doStuff();
done = true;当done = true更改在另一个线程中可见时,以前所做的更改(在doStuff()中)也保证是可见的。
https://stackoverflow.com/questions/18666767
复制相似问题