考虑以下代码:
Thread A:
closed = true; // closed is a volatile variable
close();
Thread B:
while(true){
if(!closed){
write();
}
else {
...
}
}
如果我没理解错的话,closed = true;happens-beforeclose();和closed = true;happens-before ,但是和write();之间好像没有 happens-before 关系。close();write();
上面的代码是否确保write();只会在之前被调用close()?如果没有,可以进行哪些修改以使其工作?还是我必须使用synchronized?
米琪卡哇伊
翻阅古今
繁星点点滴滴
相关分类