Потокобезопасность статических блоков в Java

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
39
задан Ryan Thames 21 January 2009 в 05:22
поделиться

3 ответа

Если первый поток не закончил инициализировать SomeClass, второй поток заблокируется.

Это детализировано в разделе Java Language Specification in 12.4.2 .

47
ответ дан Jon Skeet 5 August 2019 в 17:06
поделиться

Статическая инициализация класса, как гарантируют, будет ориентирована на многопотоковое исполнение Java.

15
ответ дан Dave Ray 5 August 2019 в 17:06
поделиться

предостерегитесь это, Вы не называете код, которые требуют блокировки для инициализируемого класса - это зайдет в тупик. посмотрите это сообщение в блоге: http://ramblingabout.wordpress.com/2008/04/10/deadlock-quiz-the-answer/

2
ответ дан Chii 5 August 2019 в 17:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: