我有一個ContainerClass類,它有一些靜態變量。 幾個同時運行的線程訪問這些靜態變量,並且它們始終需要具有最新的值。Java - 當沒有實例化對象時需要static和volatile?
的線程訪問的變量沒有ContainerClass的對象,而是像
ContainerClass.variable_A;
我還需要聲明的是在ContainerClass線程volatile
之間共享的變量?任何緩存是否發生在線程中?
編輯:一些清晰的編輯。
EDIT2:爲了更清楚:多個線程閱讀這些volatile變量的值,但只有一個線程套他們。讀線程會緩存變量還是始終保持最新版本,因爲讀線程中沒有對象實例化?
你確定波動性足夠嗎?如果你曾經使用'ContainerClass.variable_A ++',volatile將不會使其成爲原子。 – user2357112
有很好的例子答案。 http://stackoverflow.com/a/7943472/1370062 – RMachnik