对同一组变量使用同步(更新时)和volatile(立即读取)是一个好习惯吗?

问题描述 投票:0回答:1

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

我是Java中多线程域的新手,想知道这是不是一个好习惯。在Java中有更好(更有效)的方法吗?

java multithreading synchronization volatile use-case
1个回答
0
投票

您可以使用ReentrantReadWriteLock来处理此类情况。

© www.soinside.com 2019 - 2024. All rights reserved.