
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.04.2014, 11:21
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
встретил в коде такую секцию. что-то я не понимаю ее смысл. Код: java 1. Я это так понимаю: никто из этого потока не сможет обратиться к этой секции пока этот поток не освободит ее. как-то бредово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:25
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
В коде? Используемом? В Java сертификации есть вопрос с такой фигней. В реальной жизни смысла ноль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:26
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, в оочень используемом....дебажу сижу его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:33
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, можешь привести пример когда это как-то повлияет на исполнение кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:42
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90можешь привести пример когда это как-то повлияет на исполнение кода? Та не особо. Может там внутри wait() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:47
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, у тебя дар ясновидения) Не, я понимаю, что wait() и notify() можно только внутри synchronized блока писать, но если туда никто не сможет войти больше, то какой смысл.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:50
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90у тебя дар ясновидения) У меня гугл: http://www.coderanch.com/t/517363/threads/java/synchronized-Thread-currentThread redwhite90Не, я понимаю, что wait() и notify() можно только внутри synchronized блока писать, но если туда никто не сможет войти больше, то какой смысл.... Ну, какой-то топорный механизм стопорить потоки. А notify как реализован? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:52
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, я там был, но не понял сути того, что там пишут. про notify не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 11:57
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90про notify не понял Это же у вас код. Если есть wait() должен быть и notify(). Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 12:02
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, в этом классе нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 12:52
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, наверное что-то не так с этим кодом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 13:16
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90 , Код однозначно кривой. На классах java.* синхронизироваться нельзя. Не потому, что это однозначно ведет к неправильной работе программы, а потому, что вы синхронизируетесь на объектах, которые находятся вне вашего полного контроля. А это может приводить к нежелательным сайд-эффектам, из-за которых вам потом придется ломать голову. Например, берет Вася, и синхронизируется на стринге, прочитав где-то, что стринги в Java синглтоны. И деплоит свое приложение в аппсервер. Потом он радостно рассказывает об этом Пете, и тот запиливает синхронизацию на стрингах в совершенно другом приложении, и тоже деплоит его на этот же сервер. В итоге у вас возникает контеншн между разными потоками из разных приложений. Жопа? Жопа. Долго вы будете дебагать это? Очень долго, гарантирую. А потом в команду приходит Вова, который в одном месте код делает new String("blabla"). И Васин код перестает работать, потому что Вова сломал синглтон. Долго вы будете это дебагать? Долго, гарантирую. Или берете вы, и синхронизируетесь на Thread. А потом кто-то из Oracle решает в потрохах java.lang так же синхронизироваться на Thread. И что? Опять непонятный контеншн. Так что надо следовать простому правилу: синхронизироваться только на мониторах ваших объектах, которые полностью под вашим контролем. Тогда все будет хорошо. Что же до вашего кода, то не факт, что он работает неправильно. Где-то в другом месте приложения запросто может быть что-то вроде: Код: java 1. 2. 3. 4. И этот otherThread вполне может оказаться вашим Thread.currentThread(). Резюме: - Код кривой; - Но необязательно некорректный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 13:25
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
DEVcoach, можете написать пример кода со sleep , демонстрирующий различие кода с такой синхронизацией и без нее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:31
|
|||
|---|---|---|---|
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
DEVcoach, Со стрингами не соглашусь. Может конкретные стринги и синглтоны, но в разных приложениях, задеплоеных на один и тот же сервер, это разные истансы. Так происходит от того, что разные приложения поднимаются разными класс-лоадерами, как раз чтобы избежать вот таких (и других) коллизий. P.S. Шареный истанс может появиться только, если оба этих приложения исользуют одну и ту же либу/jar-ку задеплоеную отдельно от этих приложений на этот сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:35
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
For AllСо стрингами не соглашусь. Может конкретные стринги и синглтоны, но в разных приложениях, задеплоеных на один и тот же сервер, это разные истансы. Так происходит от того, что разные приложения поднимаются разными класс-лоадерами, как раз чтобы избежать вот таких (и других) коллизий. Лолшто? В разных класс-лоадерах разные java.lang.String? Спешу вас разочаровать. Вы немного заблуждаетесь. For AllP.S. Шареный истанс может появиться только, если оба этих приложения исользуют одну и ту же либу/jar-ку задеплоеную отдельно от этих приложений на этот сервер. rt.jar не одна из этих либ, потому что... Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:41
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:44
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
а так без: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:45
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90, Что это? Зачес это? Thread.sleep() же освобождает монитор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:49
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, а попробуй запустить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:58
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz Thread.sleep() же освобождает монитор. судя по всему эта предпосылка неверна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:58
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90, Гоню. sleep() не освобождает лок, в отличие от wait(). Выходит join на коленке. Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 14:59
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz, поймаю автора -обязательно спрошу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 15:01
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
redwhite90поймаю автора -обязательно спрошу) Зачем? Ты лучше в другом классе вытащи ссылку на поток и засинхронизируйся на ней. А автору happy debugging ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.04.2014, 15:05
|
|||
|---|---|---|---|
|
|||
synchronized (Thread.currentThread() ) есть ли смысл? |
|||
|
#18+
Blazkowicz в отличие от wait(). а кстати да....получается, что это проcnj Thread.sleep() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=Pronyra&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 664ms |
| total: | 806ms |

| 0 / 0 |
