|
|
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! В требованиях к вакансиям среди прочих указано знание многопоточности. Простое изучение литературы без практики не даст результата. Отсюда вопрос - не посоветуете какие-нибудь задачи, решая которую можно изучить данную предметную область? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:37 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
andrsam, До определенного момента даст. Ну как минимум в обычный аутсорс интервью пройти шансы будут. Но, поддерживаю. Кстати предлагаю разобрать, кто чувствует силы в себе, по полочкам пример кода: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. P.S. Ожидаю, что сейчас посоветуют читать Concurrency in practise. Но для начала это слишком суровое чтиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:44 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questioner, А несуровое чтиво не посоветуете?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:51 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
andrsamquestioner, А несуровое чтиво не посоветуете?) Для понимания общих принципов мне эта статья более менее нравится: http://www.javaspecialist.ru/2011/06/java-memory-model.html на хабре много статеек, но да, есть ощущение, что по нитке собираешь понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:57 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
andrsamquestioner, А несуровое чтиво не посоветуете?) ну как раз Java Concurrency in Practice не так уж и суров, по сравнению с тем же Art Of Multiprocessor programming. Просто сама по себе тема сложная, а изложение в JCP очень даже хорошее, просто надо читать внимательно. Ну и да, вы правы, теория без практики быстро выветривается. Попробуйте написать какой-нибудь полезный пайплайн. Например, вытягивать какие-то веб-страницы(объявления продажи автомобилей и тп). Пайплайн будет состоять из шагов 1) вычитать страницу 2) отформатировать(извлечь нужное) 3) сохранить в базу данных. - все степы в отдельных потоках. Одни вычитывают, другие парсят, третьи сохраняют И чтоб все быстро четко и многопоточно:) Ну и корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 14:06 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questionerДля понимания общих принципов мне эта статья более менее нравится: http://www.javaspecialist.ru/2011/06/java-memory-model.html на хабре много статеек, но да, есть ощущение, что по нитке собираешь понимание. Лучше, чем слушать Шипилёва , по-русски ничего нет. Редкое сочетание полного понимания вопроса и умения хорошо объяснять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 14:59 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
забыл никПайплайн конвеер по-русски? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 15:52 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Alexey TominquestionerДля понимания общих принципов мне эта статья более менее нравится: http://www.javaspecialist.ru/2011/06/java-memory-model.html на хабре много статеек, но да, есть ощущение, что по нитке собираешь понимание. Лучше, чем слушать Шипилёва , по-русски ничего нет. Редкое сочетание полного понимания вопроса и умения хорошо объяснять. а у него есть где-то изложение от начала и до конца? я смотрел несколько видосов, мне кажется, что он просто рассказывает, что ему нравится, развеивает мифы и т.д. В каком порядке видосы смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 16:33 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Ну и кстати, господа, насчёт практики, кто нить может таки про код то пояснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 16:34 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questionerAlexey TominЛучше, чем слушать Шипилёва , по-русски ничего нет. Редкое сочетание полного понимания вопроса и умения хорошо объяснять. а у него есть где-то изложение от начала и до конца? я смотрел несколько видосов, мне кажется, что он просто рассказывает, что ему нравится, развеивает мифы и т.д. В каком порядке видосы смотреть? Вы издеваетесь? Я привёл ссылку, там идут два видео. Вот так и смотреть. Сначала первое, потом второе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 17:14 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questionerНу и кстати, господа, насчёт практики, кто нить может таки про код то пояснить? С практикой, реально, плохо. Потому что если написать плохой код, то этого можно не заметить. При этом код может быть некорректным, на работать на компе разработчика. И даже на куче других. Шипилёв рассказывал, как ему в RedHat и Oracle давали ревьювить неправильный код. Вроде не дураки, а ошибки- прямо как в соседнем треде "должно работать". По-моему надо как раз для начала смотреть видео и решать по ходу задачки, плюс читать задачки отсюда . Когда все найденные примеры решаешь правильно- пора ехать на jpoint/joker/... и в кулуарах мучать того же Шипелёва- он готов побеседовать, если человек понимает базовые принципы (грубо- решает все вышеуказанные задачки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 17:21 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Alexey Tominquestionerпропущено... а у него есть где-то изложение от начала и до конца? я смотрел несколько видосов, мне кажется, что он просто рассказывает, что ему нравится, развеивает мифы и т.д. В каком порядке видосы смотреть? Вы издеваетесь? Я привёл ссылку, там идут два видео. Вот так и смотреть. Сначала первое, потом второе. Ок) первое отсмотрел. и кстати понимаю откуда у вас такая уверенность, что гарантий нет, что последующее после записи чтение может прочитать старое значение, но по-моему он там пытается нечто другое объяснить. К тому же в самом конце в примере он предлагает делать переменную volatile. В теории до примера он говорит, что Если мы увилим волатильную переменную измененной, то увидим и все, что было сделано перед ней, НО , судя по всему, подразумевается, что условием видимости будет то, что чтение произошло после записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 17:28 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
На вскидку: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 17:59 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questioner НО , судя по всему, подразумевается, что условием видимости будет то, что чтение произошло после записи. Да. Вопрос, что есть сразу после записи . На следующий такт? Через 10 тактов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 18:00 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Alexey TominquestionerНу и кстати, господа, насчёт практики, кто нить может таки про код то пояснить? С практикой, реально, плохо. Потому что если написать плохой код, то этого можно не заметить. При этом код может быть некорректным, на работать на компе разработчика. И даже на куче других. Шипилёв рассказывал, как ему в RedHat и Oracle давали ревьювить неправильный код. Вроде не дураки, а ошибки- прямо как в соседнем треде "должно работать". По-моему надо как раз для начала смотреть видео и решать по ходу задачки, плюс читать задачки отсюда . Когда все найденные примеры решаешь правильно- пора ехать на jpoint/joker/... и в кулуарах мучать того же Шипелёва- он готов побеседовать, если человек понимает базовые принципы (грубо- решает все вышеуказанные задачки). Так мой вопрос о том гарантирован ли какой-либо вывод в представленном коде? Если Вы пишете многопоточный код, это обычная ситуация - code review. Что неуместного в этом вопросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 18:18 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Alexey Tominquestioner НО , судя по всему, подразумевается, что условием видимости будет то, что чтение произошло после записи. Да. Вопрос, что есть сразу после записи . На следующий такт? Через 10 тактов? Чего придумывать то, если чтение началось в момент, когда запись завершилась, то тогда и видно будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 18:41 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
andrsamЗдравствуйте! В требованиях к вакансиям среди прочих указано знание многопоточности. Простое изучение литературы без практики не даст результата. Отсюда вопрос - не посоветуете какие-нибудь задачи, решая которую можно изучить данную предметную область? Меня как то на интервью спросили написать програмку по "Спящему Парикмахеру" Дейкстры. Я решил не заморачиваться и написал через очередь с блокировкой. Потом решил опубликовать решение. https://vyatkins.wordpress.com/2013/12/21/sleeping-barber-problem/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 19:02 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Alexey TominquestionerНу и кстати, господа, насчёт практики, кто нить может таки про код то пояснить? С практикой, реально, плохо. Потому что если написать плохой код, то этого можно не заметить. При этом код может быть некорректным, на работать на компе разработчика. И даже на куче других. Шипилёв рассказывал, как ему в RedHat и Oracle давали ревьювить неправильный код. Вроде не дураки, а ошибки- прямо как в соседнем треде "должно работать". По-моему надо как раз для начала смотреть видео и решать по ходу задачки, плюс читать задачки отсюда . Когда все найденные примеры решаешь правильно- пора ехать на jpoint/joker/... и в кулуарах мучать того же Шипелёва- он готов побеседовать, если человек понимает базовые принципы (грубо- решает все вышеуказанные задачки). Да там в основном задротские вопросы, в жизни этого можно избежать обычные бы все для начала устаканить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 19:09 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
SergunkaМеня как то на интервью спросили написать програмку по "Спящему Парикмахеру" Дейкстры. Я решил не заморачиваться и написал через очередь с блокировкой. Потом решил опубликовать решение. https://vyatkins.wordpress.com/2013/12/21/sleeping-barber-problem/ Твое игнорирование InterrupedException вызвало-бы вопросы на собеседовании. По крайней мере надо-бы бы в каментах написать почему игнорим и почему это ни к чему плохому не приведет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 00:56 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
no56892На вскидку: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: java 1. понятно, что это final поле и то, что тут установлено будет видно, если мы получили ссылку на instance != null а вот Код: java 1. как к этому относиться? оно к тому же установлено после присвоения ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 10:00 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
no56892, или магия freeze action всё сделает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 10:40 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
questioner, Там вроде если хотя бы одно поле final, то в конец конструктора автоматически добавляется шняга подобная записи в волатайл (мембар или хз как правильно, сброс в оперативку сразу кароче условно), за исключением, что запись в волатайл создает hb, а final "ограниченное" hb, т.е. другие потоки увидят все, что произошло в конструкторе, но не гарантированно увидят то, что было до создания объекта. https://shipilev.net/blog/2014/all-fields-are-final/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 20:45 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Кароче: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Правдо следует сказать, что в JLS есть пример: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Т.е. это гарантии JVM, однако в предыдущем посте я писал про то, что если хотя бы одно поле final - то вообще все действия в конструкторе видны. Это я взял вот отсюда: https://shipilev.net/blog/2014/safe-public-construction/#_safe_publication Т.е. это по факту так, но в JMM не гарантируется, вывод - final поля видны после инициализации, а также видны все действия с final полями в конструкторе если строго по JMM и не залипать на текущее положение дел. Вроде все :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 21:21 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
Кстати: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. кто там говорил про volatile?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 22:06 |
|
||
|
Изучение многопоточности в Java
|
|||
|---|---|---|---|
|
#18+
no56892Кстати: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. кто там говорил про volatile?))) Беру свои слова обратно, это не работает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 22:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39396100&tid=2123187]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 428ms |

| 0 / 0 |
