Java ?????????: ?????? volatile ???? ??????
???????????? ???????[ 2013/9/29 15:26:27 ] ????????
?????嵥 2. ?? volatile ???????????????
volatile boolean shutdownRequested;
...
public void shutdown() { shutdownRequested = true; }
public void doWork() {
while (!shutdownRequested) {
// do stuff
}
}
|
???????????????????? shutdown() ???? —— ?????????????? —— ??????????????????????????? shutdownRequested ??????????????????? JMX ????????GUI ???????е??????????????? RMI ???????? Web ??????????????????? synchronized ???д??????????嵥 2 ????? volatile ???????д?鷳??????? volatile ????????????????????????????????κ??????????????????????? volatile??
?????????????????????????????????????????????????shutdownRequested ????? false ???? true???????????????????????????????????????????????????????????????????????2?????????? false ?? true????????? false??????????????Щ?????????????????????????
?????? #2???????????????one-time safe publication??
????????????????????????????????????д???????????????????????????????????????????£??????????????????????????????????????д??????????????????????????????????????????double-checked-locking??????????????ж????????????????????????ж??????????????????????????????????μ??????????????????????????????????????????
??????????????????????????????????????? volatile ??????嵥 3 ???????????????к????????????δ??????????Щ????????????????????????Щ?????????????????????Щ???????????????????
?????嵥 3. ?? volatile ???????????????????
public class BackgroundFloobleLoader {
public volatile Flooble theFlooble;
public void initInBackground() {
// do lots of stuff
theFlooble = new Flooble(); // this is the only write to theFlooble
}
}
public class SomeOtherClass {
public void doWork() {
while (true) {
// do some stuff...
// use the Flooble?? but only if it is ready
if (floobleLoader.theFlooble != null)
doSomething(floobleLoader.theFlooble);
}
}
}
|
??????? theFlooble ???ò??? volatile ?????doWork() ?е?????????? theFlooble ???????????????????????????? Flooble??
???????????????????????????????????????????????????????Ч???????????Ч???????ζ?????????????????????????????volatile ???????????????????????????????????????????????????????????????????????????????
?????? #3?????????independent observation??
?????????? volatile ????????????????? “????” ????????????????á????磬??????????????????????о????????????????????????????????θ?????????????°??????????? volatile ????????????????????????????????????????????μ???????
???????????????????ó??????????????????????嵥 4 ????????????????μ??????ε??????????????????????? lastUser ???????????????????????????????á?
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11