powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring бин с совместно используемым состоянием
15 сообщений из 15, страница 1 из 1
Spring бин с совместно используемым состоянием
    #38587585
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некий singleton бин, который по логике должен иметь в себе часто обновляемую Map. Однако несложный эксперимент показывает, что бин непотокобезопасен. В обычном Java приложении я бы использовал коллекцию из java.util.concurent. Но тут выполнение происходит в контейнере Tomcat, что меня смущает. Ведь по идее контейнер берет управление потоками на себя, а я вмешиваюсь.
Подскажите, гуру, имею ли я право использовать java.util.concurent или уместен иной способ решения проблемы. Какой?
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38587640
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЩичеОднако несложный эксперимент показывает, что бин непотокобезопасен

а можно поподробнее об эксперименте и его результатах
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38587659
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щиче,
взять singleton СУБД
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38587661
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЩичеПодскажите, гуру, имею ли я право использовать java.util.concurent или уместен иной способ решения проблемы. Какой?
CuncurrentHashMap используйте на здоровье. Про иные способы Вам никто не скажет пока Вы детально не опишите для чего у Вас в приложении полявилась разделяемая коллекция, то есть не опишите требования к приложению.
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589004
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ!

Про бин: его задача принимать звонки с АТС. Метод receiveRing дергается когда звонок начинается, hang когда трубка кладется любым способом. Состояние нужно для показа оператору активных звонков. Можно положить в БД и для статистики так и делается. Однако хотелось бы снизить накладные расходы на обмен с БД. Звонков очень много одномоментно, тратить время на непрерывный опрос СУБД не хочется.
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589017
Фотография Щиче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class SomeSingletonService {
      List<Integer> list = new ArrayList<>();

     {
               for(int i = 0; i < 500000; i++)
                          list.add(i);
     }

     public void nonThreadSafeMethod {

              list.add(2000, 31337);
              for(Integer item : list) 
                        System.out.println(item);
     }
}



Дает exception ConcurrentModificationException.
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589531
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щиче,
Код: java
1.
List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>());
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589541
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkovЩиче,
Код: java
1.
List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>());


ConcurrentModificationException можно и одним потоком отгрести.
Проблема в итераторе. Синхронизация не спасёт.
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589602
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для борьбы с итератором
кажись у guava есть list - представление
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589620
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkovдля борьбы с итератором
кажись у guava есть list - представление
Есть куча способов обезопасить итератор. Синхронизация списка к ним не относится.
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589623
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
да это понятно
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38589993
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Код: java
1.
ConcurrentModificationException



можно без итератора огрести вообще?

BlazkowiczЕсть куча способов обезопасить итератор
поделитесь?
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38593803
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Щичеredwhite90,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class SomeSingletonService {
      List<Integer> list = new ArrayList<>();

     {
               for(int i = 0; i < 500000; i++)
                          list.add(i);
     }

     public void nonThreadSafeMethod {

              list.add(2000, 31337);
              for(Integer item : list) 
                        System.out.println(item);
     }
}






Дает exception ConcurrentModificationException.


правильно понимаю, что этот код не может вываливать ConcurrentModificationException ?
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38593814
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя одновременно, итерировать лист и добавлять(удалять) элементы
...
Рейтинг: 0 / 0
Spring бин с совместно используемым состоянием
    #38593868
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bochkov,

да, ступил.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring бин с совместно используемым состоянием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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