如果一个变量在Java中不需要被标记为volatile,那么把它标记为volatile会有什么危害吗?或者像我经常听到的那样,只是“不必要”的。
作为一个涉猎多线程编程但并非专业计算机科学家的人,我目前的做法是“如果有疑问,就将其标记为volatile”。
如果一个变量在Java中不需要被标记为volatile,那么把它标记为volatile会有什么危害吗?或者像我经常听到的那样,只是“不必要”的。
作为一个涉猎多线程编程但并非专业计算机科学家的人,我目前的做法是“如果有疑问,就将其标记为volatile”。
这可能会对性能产生影响,但仅限于此。
另一个危险可能在于你让自己误以为由于所有东西都是易失性的,所以你的代码是线程安全的。事实并非如此,而了解代码的线程处理影响是没有替代品的。如果你这样做了,你就不需要“以防万一”地将变量标记为volatile。
但对于您目前的问题:不,您不会通过使变量无效来破坏功能上正确的代码。