|
|
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 17:59 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
сорри Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:00 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
И... В чем смысл топика? Да и вообще, приведенный Вами код работает? Что мне он кажется _ну_крайне_ странным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:11 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevИ... В чем смысл топика? Да и вообще, приведенный Вами код работает? Что мне он кажется _ну_крайне_ странным. потренироваться писать многопоточный код) Код: 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. я добавил логов и вроде всё работает. только он конечно blocking, название кривое. Собсно с учетом отсутвия опыта написания многопоточнго кода в продакшене и возникла мысль показать что есть тут. Вдруг будет аргументированная критика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:19 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
questioner Код: java 1. а как же тонкая оптимизация с использованием volatile -переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:23 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Usmanquestioner Код: java 1. а как же тонкая оптимизация с использованием volatile -переменных? Ок, попробую написать ещё и неблокирующий алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:24 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Я только не понял, нафига там куча wait и notify. Нафига оно надо и что оно должно было делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:28 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЯ только не понял, нафига там куча wait и notify. Нафига оно надо и что оно должно было делать. 1. Чтобы поток подвис до появления значения в очереди пока она пустая 2. Если очередь переполнена, то ждём пока освободится место ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:36 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
questioner1. Чтобы поток подвис до появления значения в очереди пока она пустая 2. Если очередь переполнена, то ждём пока освободится место Leonid KudryavtsevДа и вообще, приведенный Вами код работает? Что-то мне он кажется _ну_крайне_ странным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:38 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Код: 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. можете запустить. Но конечно это не значит, что код всегда корректно работает. А что конкретно не нравится то? а то без аргументов хейтить это неконструктивно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:41 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
1. Конструктор не thread safe 2. Сочетание NonBlocking и IterruptedException в интерфейсе это прикольно :o) 3. Ну и вообще с synchronized не интересно 4. Как уже заметили, это самый что ни на есть blocking ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:44 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
На мой IMHO приведенный Вами код stack'а совершенно "странный" Ваш код который его "проверяет" еще более страннее. Складывается впечатление, что Вы вообще не знаете значения слова "многопотоковость" и "многопоточное выполнение" в практическом его смысле. Обсуждать при этом такие слова как "потокобезопасность" даже страшно. Т.ч., что тут критиковать, я даже не знаю. questionerможете запустить. Не собираюсь. Банально лениво. Всякий мусор на компьютере запускать. Да и зачем? Где тут многопоточное выполнение? Что этот код делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 18:55 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevГде тут многопоточное выполнение? А не, беру свои слова обратно. "Многопоточность" тут конечно есть, частично. Но именно, что частично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:00 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНа мой IMHO приведенный Вами код stack'а совершенно "странный" Ваш код который его "проверяет" еще более страннее. Складывается впечатление, что Вы вообще не знаете значения слова "многопотоковость" и "многопоточное выполнение" в практическом его смысле. Обсуждать при этом такие слова как "потокобезопасность" даже страшно. Т.ч., что тут критиковать, я даже не знаю. questionerможете запустить. Не собираюсь. Банально лениво. Всякий мусор на компьютере запускать. Да и зачем? Где тут многопоточное выполнение? Что этот код делает? складывается впечатление, что Вам просто поворчать не на кого) или четко выразить свою мысли Вы не можете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:03 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
no568921. Конструктор не thread safe 2. Сочетание NonBlocking и IterruptedException в интерфейсе это прикольно :o) 3. Ну и вообще с synchronized не интересно 4. Как уже заметили, это самый что ни на есть blocking Вот это аргументированная критика. no568921. Конструктор не thread safe что конкретно не так с конструктором? какие проблемы могут быть? мне кажется synchronized даёт все необходимые гарантии no568922. Сочетание NonBlocking и IterruptedException в интерфейсе это прикольно :o) всё-таки это Blocking конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:07 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Ну тут можно юзать ReadWriteLock явно, но мне это уже неинтересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:09 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Чтобы не было разночтений с именами - последняя версия: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:13 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
questionerили четко выразить свою мысли Вы не можете. Выражаюсь четче. На мой взгляд, "Многопоточность" это ОДНОВРЕМЕННОЕ выполнение какого либо кода Если уж Вы пишите проверку для своей поделки, то хорошо, было бы, если бы она "многопоточность" и проверяла. Особенно, если Вы уверяете: 1. Чтобы поток подвис до появления значения в очереди пока она пустая 2. Если очередь переполнена, то ждём пока освободится место В общем, проверьте ситуацию, когда один поток вставляет данные, а другой ОДНОВРЕМЕННО их оттуда считывает. Да при этом, что бы и проявлялась ситуация описанная Вами же. Пока, наблюдается совершенно странный полуторно-поточный тестовый код. ПОСЛЕДОВАТЕЛЬНО: 1. Добавляющий данные в коллекцию (тут правда, хоть что-то многопоточное присудствует) 2. ПОСЛЕДОВАТЕЛЬНО (т.к. Вы зачем-то sleep внутрь цикла вставили) считывающий данные из коллекции. На что встречный вопрос: где в Вашем коде проверки хоть какая-то адекватная многопоточность? И что тут можно обсуждать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:19 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, такой вариант я тоже проверял, работает. последний раз немного модифицировал код, чтобы удостовериться, что если очередь переполнена, то значения никуда не пропадают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:26 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Кстати неблокирующий вариант возможен с обычным List ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 19:38 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
По моим наблюдениям это самая вредная ошибка плохих программистов. Не то, что они программируют плохо, а что они программируют то, что не надо программировать. Обсуждать тут нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 20:01 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
questionerКстати неблокирующий вариант возможен с обычным List ? Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 20:08 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
questioner, Насчет wait/notify, это я ошибся. Сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 20:43 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
Partisan MПо моим наблюдениям это самая вредная ошибка плохих программистов. Не то, что они программируют плохо, а что они программируют то, что не надо программировать. Обсуждать тут нечего. Это задание просто потренироваться. Говорю же нет опыта написания в проде многопоточнго кода. Я пишу это не потому, что мне очередь нужна, а потому, что мне нужен навык. Можете предложить и другие задания, если они будут лучше я только рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 21:59 |
|
||
|
codereview самописный потокобезопасный stack
|
|||
|---|---|---|---|
|
#18+
UsmanquestionerКстати неблокирующий вариант возможен с обычным List ? Код: java 1. ну а что если так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 23:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39399496&tid=2123165]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 416ms |

| 0 / 0 |
