java - 在synchronized块内重新排序

rob*_*mag 1 java concurrency java-memory-model

是否可以在同步块内重新排序语句?例如

synchronized(lock) {
   statement1;
   statement2;
}
Run Code Online (Sandbox Code Playgroud)

其中,statement1和statement2不相互依赖.处理器或编译器可以重新排序这些语句吗?

谢谢.

Ale*_*man 7

是的,synchronized如果优化器决定,这些语句可以在块内重新排序.但他们不能被拿走synchronized.