论坛首页 入门技术论坛

设计模式之Double check

浏览 1262 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-16   最后修改:2009-10-16
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的使用。
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics