|
|
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Есть ли какая то разница между Код: java 1. Код: java 1. 2. 3. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 18:10:27 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90, есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 18:44:53 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Грубо говоря, когда два потока начинают бороться за synchronized секцию, то один из них как бы "засыпает" - блокируется. Усыпить, затем разбудить поток, это комплексный процесс состоящий из множества разных операций как в JVM так и на уровне ОС. Кроме этого когда поток блокируются, ОС может начать выполнение другого потока. Для этого требуется "переключение контекста". Когда данные нового потока должны быть записаны в CPU. Там ещё очень много разных нюансов, но в первом приближении так. Atomic переменные работают соверешенно иначе. Они используют Compare-And-Swap техники вплоть до специальных инструкций процессора, для того чтобы атомарно изменять переменные, не блокируя потоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 19:04:52 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вы описали, как это работает. то есть сравнили два пути достижения цели. а цель то одна будет или всё таки есть отличия для меня как для программиста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 19:14:28 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90Вы описали, как это работает. то есть сравнили два пути достижения цели. а цель то одна будет или всё таки есть отличия для меня как для программиста? Мда. Для программиста разница есть. Для быдлокодера - нет. Выбирайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 19:22:10 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczredwhite90Вы описали, как это работает. то есть сравнили два пути достижения цели. а цель то одна будет или всё таки есть отличия для меня как для программиста? Мда. Для программиста разница есть. Для быдлокодера - нет. Выбирайте. Ну зачем же так сразу. Разница только в производительности, и то она будет заметна только в крайних случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 20:59:39 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, для меня было важно понять смысл атомиков, поэтому я удовлетворён вашим ответом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 21:32:39 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90Blazkowicz, для меня было важно понять смысл атомиков, поэтому я удовлетворён вашим ответом)Смысл простой - делать атомарные операции под большой нагрузкой эффективнее, чем это можно сделать через synchronized/Lock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 21:40:02 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
rfqНу зачем же так сразу. Разница только в производительности, и то она будет заметна только в крайних случаях. Нет, не только в производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2013, 22:59:48 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторНет, не только в производительности. хочется каких-то пояснений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 11:24:53 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90хочется каких-то пояснений. Например, на блокировках можно огрести взаимную блокировку. На неблокирующих алгоритмах - нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 11:28:54 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
redwhite90хочется каких-то пояснений.Вот меня всегда такие комментарии в ступор вводят. "Каких-то пояснений" - это каких? Конструктивный разговор должен строиться примерно так: "Я почитал то-то и то-то, понял то, не понял се, хочу уточнить вот это", а не "какие-то" пояснения. Темы атомиков жеваны пережеваны уже миллионы раз. Откройте Гугл, вбейте там "java atomics cas", вкурите. Потом вбейте "java atomics performance", вкурите. А потом возвращайтесь сюда, и спрашивайте, что осталось непонятным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 11:36:05 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
cdtyjv, Справедливый вопрос был задан, мне например было тоже непонятно, какая разница кроме производительности имеется ввиду, для 1й синхронизированной строки. Ну теперь мы знаем, что речь уже не об 1й строке, а о синхронизации вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 11:39:56 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
ЛагманСправедливый вопрос был задан, мне например было тоже непонятно, какая разница кроме производительности имеется ввиду, для 1й синхронизированной строки. Ну теперь мы знаем, что речь уже не об 1й строке, а о синхронизации вообще. А вот, например, starvation можно, в теории, отгрести и на одной синхронизированой строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 11:45:44 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЛагманСправедливый вопрос был задан, мне например было тоже непонятно, какая разница кроме производительности имеется ввиду, для 1й синхронизированной строки. Ну теперь мы знаем, что речь уже не об 1й строке, а о синхронизации вообще. А вот, например, starvation можно, в теории, отгрести и на одной синхронизированой строке. Что, и на этой тоже? Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 12:24:22 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
rfqЧто, и на этой тоже? Код: java 1. 2. 3. Ну, если у вас есть объяснения почему на этом коде не может быть starvation, я с удовольствием их прочитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 12:28:09 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Если быть справедливым, то, в теории, starvation можно огрести и на CAS. Но на практике это ещё менее вероятная ситуация, чем на коротких блокировках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 12:39:28 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНапример, на блокировках можно огрести взаимную блокировку. На неблокирующих алгоритмах - нельзя. Вот 2 программиста. Оба решают - написать incrementAndGet или synchronized{nonAtomicInteger++;}. Первый думает - а, разницы нет. Второй думает - я где-то читал, что на блокировках можно огрести взаимную блокировку, напишу incrementAndGet от греха подальше. Вопрос - кто из них программист, а кто быдлокодер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 13:10:39 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
rfqВот 2 программиста. Оба решают - написать incrementAndGet или synchronized{nonAtomicInteger++;}. Первый думает - а, разницы нет. Второй думает - я где-то читал, что на блокировках можно огрести взаимную блокировку, напишу incrementAndGet от греха подальше. Вопрос - кто из них программист, а кто быдлокодер? Замыкаем тему саму на себя 15284522 . Вообще классный приём для пятницы. Возьму на вооружение. Берем утверждение выше по теме и придумываем вопрос на который оно отвечает. Постим. Profit! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 13:17:03 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, BlazkowiczrfqЧто, и на этой тоже? Код: java 1. 2. 3. Ну, если у вас есть объяснения почему на этом коде не может быть starvation, я с удовольствием их прочитаю. мда, jvm просто так работать не заставишь, то у неё starvation, то ещё что... а потом жалуются на плохую репутацию java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:39:52 |
|
||
|
многопоточность. атомики.
|
|||
|---|---|---|---|
|
#18+
Лагманмда, jvm просто так работать не заставишь, то у неё starvation, то ещё что... а потом жалуются на плохую репутацию java То ли дело C++, то Memory Access Violation, то невызваный деструктор. Это вам не примитивы синхронизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:48:51 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=195&tid=2127988]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 348ms |

| 0 / 0 |
