【发布时间】:2015-03-18 02:44:09
【问题描述】:
我正在查看下面的代码片段,坦率地说,我不明白使这个特定的 getter 同步背后的想法。
public class MVELSafeHelper {
private static final MVELEvaluator evaluator;
static {
evaluator = KiePolicyHelper.isPolicyEnabled() ? new SafeMVELEvaluator() : new RawMVELEvaluator();
}
public static synchronized MVELEvaluator getEvaluator() {
return evaluator;
}
//
}
我不是并发方面的专家,我相信 Drools 项目的人比我更有经验,但我只是想知道这是一个错字还是这个结构在某些情况下可能是值得的,因此 40%我的服务器的 CPU 时间并没有白白浪费。
【问题讨论】:
-
你说的很对,同步这个方法是没有意义的。
-
类中还有其他同步的静态方法吗?
-
@vandale,不,这里是来源:github.com/droolsjbpm/drools/blob/master/drools-core/src/main/…
-
@Osw 如果是 Drools 版本 6.2.0,你应该提醒 Drools 开发团队。
-
@laune,已经这样做了,一直在想我错过了什么,不得不咨询 SO 社区)
标签: java multithreading synchronization drools