In the absence of synchronization, the compiler, processor, and runtime can do some downright weird things to the order in which operations appear to execute. Attempts to reason about the order in which memory actions "must" happen in insufflciently synchronized multithreaded programs will almost certainly be incorrect.
线程中的非明确同步代码可能会按照非预订的顺序执行
** volatile 变量 要慎用 。 是弱化的的 Synchronized 一般是用来做一些completion, interruption, or status flag。
Locking can guarantee [b]both visibility and atomicity[/b]; volatile variables can only guarantee visibility.
线程中的非明确同步代码可能会按照非预订的顺序执行
** volatile 变量 要慎用 。 是弱化的的 Synchronized 一般是用来做一些completion, interruption, or status flag。
Locking can guarantee [b]both visibility and atomicity[/b]; volatile variables can only guarantee visibility.
本文探讨了在多线程编程中,缺乏适当同步时内存操作可能出现的问题,并强调了使用volatile变量的潜在风险。锁机制可以确保内存可见性和原子性,而volatile变量仅能提供可见性保证。
186

被折叠的 条评论
为什么被折叠?



