Kinds of implementation of Lock