我是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

它提供了用于完全替换粗略的同步关键字的工具。

10-05 18:40