So I want an array with 10 volatile booleans, not a volatile array with 10 booleans. It probably does not even make sense to have a volatile array reference, correct me if I am wrong.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
If it's only 10 and is always 10, you could simply write:
private volatile boolean b1, b2, ..., b10;
A possibly cleaner way would be to use an AtomicIntegerArray(10)
and map between integers and booleans (0=false, 1=true).
You should clarify the reason why you need 10 volatile booleans: there may be a better way.
回答2:
I believe the only way is to have a AtomicBoolean[] or an AtomicIntegerArray. Then they do not need to be volatile. Its elements will be.
If you want more fun, check this question: Which is "better". AtomicIntegerArray (1/0 as true/false) versus AtomicBoolean[]?