|
|
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
Привет, вроде почитал много о синхронизации, но так до конца и не понял. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Могут ли быть изменены свойства tmpBattle внутри synchronized другими потоками или весь код в блоке synchronized будет выполняться последовательно потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 12:04:08 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
mre, если метод синхронизирован - то к нему имеет доступ только 1 поток ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 12:23:42 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
Если синхронизируется весь код внутри блока, то для чего указывать объект блокировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 12:29:59 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
mreЕсли синхронизируется весь код внутри блока, то для чего указывать объект блокировки? "объект блокировки" это "монитор". Для одного и того же монитора, блок будет выполняться только одним потоком. Если мониторы разные, то возможно паралельное исполнени для каждого монитора. Зачастую удобнее использовать Lock, а не synchronized. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 13:14:12 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
Ага, понятно, монитор - это конкретный экземпляр, а для статических методов монитор будет конкретным классом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 14:06:09 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
Короче - ответ - внутри представленного блока все будет ок, все будет последовательно. Правило простое - один монитор - один поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 14:07:38 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
авторАга, понятно, монитор - это конкретный экземпляр, а для статических методов монитор будет конкретным классом? Ну точнее объектом типа "класс" - работать будет если используется один класслоэдер, если, вдруг, разные то и объекты получаться разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 14:11:02 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
Все, я понял, всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 14:12:35 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
mreПривет, вроде почитал много о синхронизации, но так до конца и не понял. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Могут ли быть изменены свойства tmpBattle внутри synchronized другими потоками или весь код в блоке synchronized будет выполняться последовательно потоками. public synchronized boolean assault(User target) { //синхронайзд метода равносилен synchronized (this) - и всего - то. Удобне, конечно, использовать посторонний объект, нежели this. } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 14:31:47 |
|
||
|
Понимание synchronized
|
|||
|---|---|---|---|
|
#18+
mreМогут ли быть изменены свойства tmpBattle внутри synchronized другими потоками или весь код в блоке synchronized будет выполняться последовательно потоками. Да, если найдутся два таргета, у которых поля батл равны. Я бы синхронизировал метод(ы) класса Батл. (который выполнял бы те самые "//операции с tmpBattle"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2013, 19:34:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38166142&tid=2129899]: |
0ms |
get settings: |
17ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 295ms |
| total: | 476ms |

| 0 / 0 |
