![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| gpepsi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 14.3.2010 Репутация: нет Всего: нет |
У меня 2 потока одновременно работают к файлами в каталоге.
Один поток пишет, а второй должен ахривировать весь каталог (backup), копировать его в другое место и удалять. 1. Как можно заархивировать весь каталог с его содержимым. 2. Как синхронизировать работу 2 потоков. Если писатель пишет, то у него приоитет. Читатель должен ждать. Можно ли это сделать для двух различных процессов (как-то блокировать директорию) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. http://java.sun.com/developer/technicalArt...ng/compression/
2. Создай файл блокировки, как в этом примере. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Есть пара граблей у этого способа, придется заботиться о его очистке при всех возможных исключениях. А если JVM упадет или её кто-то прибьет, то приложение может просто стать неработоспособным из-за существующего .lock-файла. Имхо лучше брать собственный лок в памяти и сопостовлять с его директорией. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Для синхронизации двух потоков можно просто создать объект и использовать его в блоке synchronize.
|
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Хоть и поздно пишу, но вопрос возник по поводу этого топика,
"А не лучше ли использовать для этих целей java.util.concurrent.locks.ReentrantReadWriteLock"? Написал и понял - не лучше, так как читают и пишут по одному потоку. Вот если читателей много, то ReentrantReadWriteLock буде - само то. Это сообщение отредактировал(а) mbasil - 21.8.2012, 11:47 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |