设计模式之Double check

double check可用于当一个field的创建比较费时,而该field又不一定被使用的情况。

	private Object lock = new Object();
	private volatile String content;
	public String getContent() {
		String t = content;
		if (t == null) {
			synchronized (lock) {
				t = content;
				if (t == null) {
					t = content = "InitString";
				}
			}
		}
		return t;
	}


注意这里volatile的使用。

你可能感兴趣的:(java,设计模式)