在查看时scala.collection.mutable.SynchronizedStack
我注意到synchronized
使用方式不同,有些方法使用synchronized[this.type]
形式
override def push(elem: A): this.type = synchronized[this.type] { super.push(elem) }
override def pushAll(xs: TraversableOnce[A]): this.type = synchronized[this.type] { super.pushAll(elems) }
和一些用途synchronized
形式
override def isEmpty: Boolean = synchronized { super.isEmpty }
override def pop(): A = synchronized { super.pop }
有什么不同?