a % b
в c ++ по умолчанию:
(-7/3) => -2
-2 * 3 => -6
so a%b => -1
(7/-3) => -2
-2 * -3 => 6
so a%b => 1
в python:
-7 % 3 => 2
7 % -3 => -2
в c ++ для python:
(b + (a%b)) % b
Если первый поток не закончил инициализировать SomeClass, второй поток заблокируется.
Это детализировано в разделе Java Language Specification in 12.4.2 .
Статическая инициализация класса, как гарантируют, будет ориентирована на многопотоковое исполнение Java.
предостерегитесь это, Вы не называете код, которые требуют блокировки для инициализируемого класса - это зайдет в тупик. посмотрите это сообщение в блоге: http://ramblingabout.wordpress.com/2008/04/10/deadlock-quiz-the-answer/