(所有这些都在多线程环境中)我的代码中有一个场景,它要求我更新类中的静态变量。现在,基于最新的变量组合,代码可能会输入一个流程或另一个流程。我使用synchronize只允许一个线程更新变量。因为,我也希望任何其他线程只注意到最新的值,我已经将这两个变量声明为volatile。我一直在阅读两个关键词的差异,我相信它们都必须用来实现我想要的。读取访问不同步,只有我写入变量的部分才会同步。
我是Java中多线程域的新手,想知道这是不是一个好习惯。在Java中有更好(更有效)的方法吗?
您可以使用ReentrantReadWriteLock来处理此类情况。