TIL

Today I Learned. 知ったこと、学んだことを書いていく

Java synchronized キーワード

以下のような記述を見た

package test;

import org.apache.log4j.Logger;

public class UserLog {
    private static Logger log;

    static {
    }

    public UserLog() {
    }

    public static Logger getLog() {
        if (log == null) {
            initLog();
        }
        return log;
    }

    private static synchronized void initLog() {
        log = Logger.getLogger(UserLog.class.getName());
    }
}


synchronizedというキーワードが気になった

synchronizedキーワードを使ったメソッドを作成すると

そのメソッドの実行が終わるまで他のスレッドはそのメソッドを呼ぶことができなくなる(同時に呼ばれなくなることが保証される?)

参考文献

3. スレッドの排他制御 (2) | TECHSCORE(テックスコア)