最近在看 Java 多线程中的一些抽象概念,其中涉及到一个概念是 synchronization order,JSL 17.4.14中的表述为"Every execution has a synchronization order. A synchronization order is a total order over all of the synchronization actions of an execution."这里为什么是对所有的同步操作是全序呢?比如一个在 monitor m 上的 unlock 操作肯定是 happen-before 在该 monitor m上的 lock 操作,这个是有序的,但是他与一个 lock on monitor n 的操作是没有关系的啊,也不会在 order 上有比较吧?看了很多资料,都是这么描述的,但是实在没有理解这里的说法,到底是我哪里理解有偏差吗?多谢大家!