Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса / 14 сообщений из 14, страница 1 из 1
23.05.2006, 16:56
    #33746288
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
Здравствуйте..

Скажите пожалуйста, нужно ли синхронизировать доступ на чтение статического ресурса? Поясню примером:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 class  SomeClass {
    
    /** Разделяемый статический ресурс */
     private   static  HashMap map;
     public   static  synchrinized  void  add(String key, Object obj) {
            map.put(key, obj);
    }
    /**
     * Вопрос связан с этим методом - нужно ли его синхронизировать?
     */
     public   static   synchronized  Object get(String key) {
            return  map.get(key);
    }  
}

Понятно что нужно синхронизировать метод, изменяющий ресурс. Но вот вопрос - нужно ли синхронизировать чтение?

ps: есть некая статическая информация - которая должна читаться всеми instances данного класса (хотелось бы чтобы это было без синхронизации)..
...
Рейтинг: 0 / 0
23.05.2006, 17:03
    #33746316
kisoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
нужно
и static не играет роли
...
Рейтинг: 0 / 0
23.05.2006, 17:07
    #33746341
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
как жаль... :(
...
Рейтинг: 0 / 0
23.05.2006, 17:10
    #33746353
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
а я думаю что может не нужно? а?
...
Рейтинг: 0 / 0
23.05.2006, 17:26
    #33746429
kisoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
а почему такие мысли, чем синхронизация мешает?

Вот товарищ Bruce Eckel пишет что лучше вообще сделать все паблик методы синхронизированными (на всякий случай), а если убираешь синхронизацию то подумать десять раз и то только если профилер показывает что это синхронизация это плохо.

А вообще, синхронизация именно на такие ситуации и расчитана, что если кто-то будет делать get именно в то время когда кто-то делает add
...
Рейтинг: 0 / 0
23.05.2006, 17:28
    #33746440
OU
OU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
2 unicornmirage:
необязательно, в зависимости от того как используется объект.

Ссылка может пригодится:
http://java.sun.com/docs/books/tutorial/collections/implementations/wrapper.html
...
Рейтинг: 0 / 0
23.05.2006, 17:48
    #33746511
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
авторнеобязательно, в зависимости от того как используется объект.

статическая информация необходима для чтения всеми instances данного класса и используется очень часто...
изменение статической информации происходит редко...
...
Рейтинг: 0 / 0
23.05.2006, 18:04
    #33746551
OU
OU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
авторстатическая информация необходима для чтения всеми instances данного класса и используется очень часто...
изменение статической информации происходит редко...
это ни о чем не говорит. Представьте что у вас есть thread А (пользуется синхронизированым методом) и thread В (пользуется несинхоринизированым методом). Если В будет к примеру повторно вызывать метод getValue (к примеру при итерации) в то время как А будет вызывать метод setValue, то результаты возвращаемые методом getValue в В будут разными. Если вас это не беспокоит, то это не проблема. Если вам нужна атомарность, то нужно синхронизировать метод getValue.
...
Рейтинг: 0 / 0
23.05.2006, 20:40
    #33746806
kisoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
золотые слова
...
Рейтинг: 0 / 0
10.06.2006, 18:06
    #33785021
он же
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
Сорри что поднимаю тему старую, но почему бы не воспользоваться ReentrantReadWriteLock'ом?
...
Рейтинг: 0 / 0
11.06.2006, 13:47
    #33785353
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
он жеСорри что поднимаю тему старую, но почему бы не воспользоваться ReentrantReadWriteLock'ом?

ух, слово какое страшное. :) побегу в яндекс смотреть что это такое...
а в двух словах можете рассказать пока про него?
...
Рейтинг: 0 / 0
11.06.2006, 14:11
    #33785366
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
хотя всё стало ясно после прочтения
вот этой статьи
...
Рейтинг: 0 / 0
12.06.2006, 04:23
    #33785808
он же
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
А там, собсно, ничего сложного и нет.
Как раз для таких случаев как у автора он и придуман.
...
Рейтинг: 0 / 0
12.06.2006, 12:51
    #33786009
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
он жеА там, собсно, ничего сложного и нет.
Как раз для таких случаев как у автора он и придуман.
выражаю свою благодарность! мне действительно помогло это интересное решение
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]