Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Поведение ArrayList в нагруженном приложении / 5 сообщений из 5, страница 1 из 1
01.06.2012, 18:36:40
    #37821977
Lonely Morgan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение ArrayList в нагруженном приложении
Существует следующая ситуация. Есть некоторый класс, в котором определен
Код: java
1.
ArrayList<PEvent> list = new ArrayList<PEvent>();


PEvent, предположим, такой:
Код: java
1.
2.
3.
4.
5.
6.
class PEvent {
    private Date from;
    private Date to;

    ...геттеры и сеттеры...
}


Запускаем в несколько потоков расчет. В итоге в пределах одного метода работающего с этим списком возникает следующая ситуация - в списке образуются объекты-дубликаты. Почему так?

Каждый расчет берет из базы информацию по какому-то человеку и производит с ними действия. Если попробовать сделать единичный расчет на одном человеке, на котором образуются дубликаты - то их нет. А при многопоточном, либо последовательном расчете по всей базе - возникают.
...
Рейтинг: 0 / 0
01.06.2012, 18:53:14
    #37821993
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение ArrayList в нагруженном приложении
Lonely Morgan,

авторВ итоге в пределах одного метода работающего с этим списком возникает следующая ситуация - в списке образуются объекты-дубликаты. Почему так?


Такое невозможно, если Ваш код не изменяет лист.
Как Вы определили, что образуются объекты-дубликаты? size() проверяли?
Я не знаю, как у Вас построена обработка в многопоточном режиме объектов этого листа. Может, просто в разных потоках обрабатывается один и тот же объект PEvent. Вот вам и дублирование.
...
Рейтинг: 0 / 0
01.06.2012, 18:55:31
    #37821996
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение ArrayList в нагруженном приложении
P.S. И учтите, что ArrayList не синхронизирован
http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html
...
Рейтинг: 0 / 0
01.06.2012, 18:56:34
    #37821998
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение ArrayList в нагруженном приложении
Большой Синий КитP.S. И учтите, что ArrayList не синхронизирован
http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html
Collections.synchronizedList();
...
Рейтинг: 0 / 0
01.06.2012, 21:50:50
    #37822176
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение ArrayList в нагруженном приложении
svenom,

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


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