|
|
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ПОТОК 1 Код: java 1. 2. ПОТОК 2 Код: java 1. 2. 3. 4. 5. 6. Что может напечатать ПОТОК2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2014, 23:34 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
ИМХО все 3 варианта, а что разве volatile спасает от race? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 00:57 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Хз, не отвечу. Понятно, что если бы не synchronized, то было бы [null, 0, 42]. В рассматриваем же примере, надо понять возможен ли 0. А это зависит от того, во что скомпилируется пустой synchronized-блок. Если JVM его выкосит целиком, то 0 возможен. Если же она выкосит саму логику монитора, но при этом оставит барьеры, а именно StoreLoad после выхода из synchronized, то 0 не будет. В общем, я бы включил PrintAssembly, дождался бы компиляции, и посмотрел на ассемблю С() и getA(). Если увидим там мониторную lock addl(esp, 0), значит 0 невозможен. В противном случае - возможен. Но я все же склоняюсь к тому, что ноль здесь невозможен, в противном случае это нарушает заветы JMM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 01:02 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Да, все нормально будет - без 0. Только что проверил на коде из своего тренинга, в котором вылетает NPE, если нет final. Вот сам код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 01:23 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
[42, null] / [42, null, 0] Результат зависит только от того, а выбрасывает ли JVM пустые synchronized-блоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:29 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
schwa[42, null] / [42, null, 0] Результат зависит только от того, а выбрасывает ли JVM пустые synchronized-блоки.Нет, результат зависит от того, насколько корректно она их выбрасывает. Корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:39 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
cdtyjvschwa[42, null] / [42, null, 0] Результат зависит только от того, а выбрасывает ли JVM пустые synchronized-блоки.Нет, результат зависит от того, насколько корректно она их выбрасывает. Корректно. Нет. Результат зависит от того, а запускается ли код на ai64, ARM-е или POWER. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:41 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
А с чего бы вдруг уважающая себя JVM должна выкидывать инструкции являющиеся точками hb ? Это ж форменный беспредел ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:51 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Свеном ну твой пример это не доказательство А слабо на языке отношений доказать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:52 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
no56892ИМХО все 3 варианта, а что разве volatile спасает от race? Ну если мы записали в волатайл поле - то вскоре таки прочтем то что записали там же hb как никак между записью и чтением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 08:53 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
а если поток один записал в память 42, но lock еще не получил, в то время как 2й с локом читает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 09:11 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
schwaНет. Результат зависит от того, а запускается ли код на ai64, ARM-е или POWER.Нет, результат зависит от того, нарушает ли JIT модель памяти при оптимизациях или нет. Я склонен думать, что не нарушает, достаточно выпилить саму логику монитора, но оставить барьеры по краям. Логика, сэр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:08 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
buldozer01А с чего бы вдруг уважающая себя JVM должна выкидывать инструкции являющиеся точками hb ? Это ж форменный беспредел )))+1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:11 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Результат опроса пока радует)))) В серьезные конторы где JSP и Struts это ругательства конкуренция не столь большая будет)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:23 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
schwaНет. Результат зависит от того, а запускается ли код на ai64, ARM-е или POWER. https://github.com/openjdk-mirror/jdk7u-hotspot/blob/50bdefc3afe944ca74c3093e7448d6b889cd20d1/src/share/vm/opto/macro.cpp , строчка 1958. Шах и мат, schwa! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:32 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
buldozer01Результат опроса пока радует)))) В серьезные конторы где JSP и Struts это ругательства конкуренция не столь большая будет))))Ответственно заявляю вам - конкуренции практически нет. Так как нет и большого числа годных разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:38 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
no56892а если поток один записал в память 42, но lock еще не получил, в то время как 2й с локом читает?В это случае вы не увидите null в GLOBAL. Тут вопрос только в том, может ли присвоение 42 "убежать" за присвоение GLOBAL. Как показывает анализ исходников Hotspot - не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:41 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Свеном такие задачки решаются на языке математики и отношений В данном случае это SO , HB , PO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 10:54 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
buldozer01Свеном такие задачки решаются на языке математики и отношений В данном случае это SO , HB , POЕсли вам нравится мозгодрочка - решайте. Мне это не надо, я вижу data race на автомате. В данном случае все кристально ясно - между выходом из C() и входом в getA() есть HB. Вопрос был только в том, не исчезнет ли это HB при выпиливании пустых критических секций. И, кажется, я дал достаточно убедительный ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:10 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
cdtyjvbuldozer01Свеном такие задачки решаются на языке математики и отношений В данном случае это SO , HB , POЕсли вам нравится мозгодрочка - решайте. Мне это не надо, я вижу data race на автомате. В данном случае все кристально ясно - между выходом из C() и входом в getA() есть HB. Вопрос был только в том, не исчезнет ли это HB при выпиливании пустых критических секций. И, кажется, я дал достаточно убедительный ответ. Мозгодрочка ??? ))))))) Ну Ну Я думал ты серьезный программист а ты ж джедай точно))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:11 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
buldozer01Мозгодрочка ??? ))))))) Ну Ну Я думал ты серьезный программист а ты ж джедай точно)))Умножьте 8 на 9. Вы это как делаете - столбиком, или "на автомате". А эотт кмомнетаирй пеерчтиайте еще раз. Вы как это сделали - по слогам, или "на автомате"? Когда у тебя за спиной много тысяч строк конкурентного кода, тебе не нужны никакие SO и PO. Максимум - HB. А про эти абстрактные вещи имеет смысл рассуждать либо в рамках образовательного процесса, либо в рамках мозгодрочки в concurrency-interest. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:16 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
Программисты делятся на несколько групп 1) Джедаи 2) Евангелисты 3) Тупо сидим курим, формочки клипаем и снимает ЗП с карточки 4) Серьезные академически грамотные разработчики Ты видимо из первых - я стараюсь двигаться к четвертым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:19 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
cdtyjv, Какой мат, уважаемый? Никто не пытался тебе ничего доказывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:47 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
schwaКакой мат, уважаемый? Никто не пытался тебе ничего доказывать.Все верно. Доказывали не вы, доказывали вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:53 |
|
||
|
Задачка на ночь
|
|||
|---|---|---|---|
|
#18+
buldozer01Программисты делятся на несколько групп 1) Джедаи 2) Евангелисты 3) Тупо сидим курим, формочки клипаем и снимает ЗП с карточки 4) Серьезные академически грамотные разработчики Ты видимо из первых - я стараюсь двигаться к четвертымКакодемонов еще забыли. Мне побоку на эти группы, я не принадлежу ни к одной из них. Я разработчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 11:54 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=158&tid=2126515]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 350ms |

| 0 / 0 |
