У меня есть фон C ++, из которого я знаю, что одновременный доступ к записи на std::map
может иметь очень неприятные последствия, какова ситуация в Java с java.util.HashMap
?
Обратите внимание, что я хотел бы знать, есть ли плохие побочные эффекты помимо очевидного состояния гонки.
Насколько я понимаю, ConcurrentAccessException
выбрасывается, только если вы перебираете java.util.HashMap
, когда вы модифицируете его из другого потока, означает ли это, что безопасно просто вызывать метод get
, пока другой поток вызывает put
(с "безопасным" я имею в виду, что худшее, что может случиться, это то, что вы получили неправильное значение)?
Возможно ли как-то вызвать SEGFAULT подобным образом?
Обратите внимание, что под "подобным" я имею в виду условие гонки, которое включает только чистый метод / объекты Java (без JNI)