我是Java线程的新手,需要您的帮助。
public enum IndicatorTimestamp {
instance;
private JSONObject indicatorTmsUTC;
public void setIndicatorTimestamps(JSONObject indicatorTmsUTC) {
this.indicatorTmsUTC = indicatorTmsUTC;
}
public String getUtcTmsForTag(String tag) {
try {
if (indicatorTmsUTC != null) {
return indicatorTmsUTC.getString(tag);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
我需要锁定
indicatorTmsUTC
对象。可以吗,如果我为这两种方法都添加了synchronized
字。public synchronized void setIndicatorTimestamps
和public synchronized String getUtcTmsForTag
。还是有其他解决方案?
最佳答案
您可以在使用属性时对属性使用sync来锁定它。
如果您想要更细微的锁定,例如读写锁定,我建议您查看java concurrent API
它提供了用于完全替换粗略的同步关键字的工具。