
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.05.2012, 15:42:10
|
|||
|---|---|---|---|
lock with timeout |
|||
|
#18+
Есть разделяемый ресурс (метод) , когда какой нибудь один поток выполняет этот метод, все остальные которые пытаются его дернуть должный перейти в состояние ожидания, но должны ждать не "всегда" а только определенный промежуток времени и если в течении этого времени ресурс не освободиться то кидать эксепшин и завершать работу. Это легко делаться с помощью wait/notify , но решил заюзать java.util.concurrent (см код ниже). Покритикуйте решение :) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.05.2012, 16:03:54
|
|||
|---|---|---|---|
lock with timeout |
|||
|
#18+
OOsalivan, Может попробовать Condition И Код: java 1. Вроде бы лучше в finally оборачивать. Или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.05.2012, 16:34:52
|
|||
|---|---|---|---|
lock with timeout |
|||
|
#18+
МорфийOOsalivan, Может попробовать Condition И Код: java 1. Вроде бы лучше в finally оборачивать. Или как? Как именно Condition попробовать? Лучше в finally но в том и смысл примера что если мы не сделали lock.unlock() в течении заданного промежутка времени и при этом на локе висели потоки то кидать эксепшин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2131812]: |
0ms |
get settings: |
13ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
60ms |
get topic data: |
16ms |
get forum data: |
5ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 324ms |
| total: | 507ms |

| 0 / 0 |
