Безопасно ли вставлять элементы в указанные индексы c из разных потоков, используя ArrayList? - PullRequest
0 голосов
/ 07 апреля 2020

Я не вижу проблемы в нескольких потоках при добавлении элементов к указанным c индексам в ArrayList. Предположим, что список не будет изменен. Здесь нет условий гонки. Это предположение неверно?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Если предположить, что каждому потоку выделен только один индекс, то каждый поток не обязательно будет видеть обновления любых других индексов в массиве, поскольку между записью другого потока и записью текущего потока нет никакой связи случай-до . читать индексы. Есть некоторые типы , которые обеспечивают безопасность для таких операций.

0 голосов
/ 07 апреля 2020

вам нужно сделать ArrayList Thread Safe.

Collections.synchronizedList(new ArrayList<YourClassNameHere>())

это может создать потокобезопасный объект ArrayList.

Примечание: Thread Safe означает, что одни и те же данные могут быть доступны из разных Тема / Процессы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...