Java 方法/字段的独占访问权限
在我的应用程序中,我有一个类,该类有一个变量,该变量在每次出现新事件时都会更新:Java 方法/字段的独占访问权限,java,Java,在我的应用程序中,我有一个类,该类有一个变量,该变量在每次出现新事件时都会更新: class Logger{ private String mVariable =""; public void onEvent(Event e) { //update mVariable here } public void log() { //write mVariable to file } } 现在,我有另一个类,它想触发Logger类将当前值写入文件 class
class Logger{
private String mVariable ="";
public void onEvent(Event e) {
//update mVariable here
}
public void log() {
//write mVariable to file
}
}
现在,我有另一个类,它想触发Logger类将当前值写入文件
class Trigger{
//this is another event, not the event for which Logger is waiting for
public void onEvent(Event e) {
mLogger.log();
}
}
我如何确保触发器类可以在需要时独占访问mvvariable的值?i、 e.当Trigger类调用log方法时,MVVariable的值当然不应被Logger类覆盖。使两个方法同步,然后调用lock将锁定对OneEvent的访问您的意思是mLogger.log;是否会触发onEvent e?否,记录器的onEvent方法和触发器的onEvent方法完全不相关。它们是从eventbus调用的。同步这些方法只是确保它们不会同时执行。我如何确保触发器类不必等待,但可以在需要时调用日志方法?那么,如果记录器处于写入中间,触发器需要在不等待的情况下访问,那么该如何精确地执行此操作?您不必使整个方法同步。仅对实际写入变量的相关位执行显式锁定。但是,如果一件事情已经被访问,那么就没有办法神奇地回滚它所做的一切,以便优先考虑其他事情。