powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
14 сообщений из 14, страница 1 из 1
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
    #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
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
    #33746316
kisoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно
и static не играет роли
...
Рейтинг: 0 / 0
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
    #33746341
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как жаль... :(
...
Рейтинг: 0 / 0
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
    #33746353
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я думаю что может не нужно? а?
...
Рейтинг: 0 / 0
Нужно ли синхронизировать доступ на чтение?, правила синхронизации разделяемого ресурса
    #33746429
kisoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а почему такие мысли, чем синхронизация мешает?

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

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

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

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

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


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