我想知道调用线程启动是否具有更新volatile或获取锁定后的安全效果?
答案 0 :(得分:1)
新启动的线程将充当该特定线程的内存屏障。
所有其他线程必须同步访问(通过输入synchronized
阻止或获取锁定)以查看更新的非最终非易失性变量。
答案 1 :(得分:1)
- 在启动线程中的任何操作之前发生对线程启动的调用。
以及列出的其他效果:
监视器的解锁(同步块或方法退出) 发生在每个后续锁定之前(同步块或方法) 那个监视器的入口)。而且因为发生在之前的关系 是传递的,解锁之前线程的所有动作 发生 - 在任何线程锁定之后的所有操作之前发生 监控。
对易失性字段的写入发生在每次后续之前 读取同一个字段。易失性字段的写入和读取具有 进入和退出监视器时的内存一致性效果类似, 但不要求互斥锁定。
所以是的它具有相同的效果