значение переменной изменено в разных потоках - PullRequest
0 голосов
/ 30 декабря 2011

У меня много параллельных запущенных потоков, обслуживающих http-запросы. Они будут создавать объект (? Extends Object) для каждого запроса и сохранять объект в списке. Посоветуйте мне хорошую структуру данных для реализации этого списка. Я не могу использовать ArrayList, так как он не был потокобезопасным. Я не люблю использовать Vector - поскольку он синхронизирован, он заставит другие потоки ждать, когда один из http-потоков сохранял объект. Также пытался LinkedList, но есть потеря данных из-за одновременного обновления.

1 Ответ

1 голос
/ 30 декабря 2011

Ваша переменная должна быть атомарной, чтобы ее можно было безопасно обновлять несколькими потоками (см. Java.util.concurrent.atomic). Вы также можете использовать AtomicInteger, чтобы отслеживать количество обновлений переменной.

Но вы уверены, что хотите сделать это без явного управления обновлением переменной?

...