Я знаю, что если значение переменной обновляется одним потоком A, а затем читается другим потоком B, новое значение может не просматриваться потоком B, и B может получить устаревшее значение. Мой вопрос в том, что компьютеры работают очень быстро, могу ли я предположить, что эта возможная проблема с задержкой составляет порядка миллисекунд, и B в конечном итоге увидит новое значение, если мы примем шкалы времени, скажем, минут или даже часов?
Почему я спрашиваю об этом в моем коде, у меня есть карта с некоторыми записями и она работает следующим образом:
пользователь добавляет запись на карту;
пользователь идет делать какую-то работу;
пользователь возвращается и удаляет запись;
Многие пользователи делают этоодновременно. Шаг 1 и шаг 3 очень быстрые и выполняются в одном и том же потоке (конкретный поток актера AKKA), шаг 2 занимает много времени и выполняется в отдельных рабочих потоках. Теперь, когда на шаге 2 иногда происходит сбой, шаг 3 может никогда не выполняться, и забытые записи могут накапливаться на карте, я настроил поток планировщика, чтобы проверить карту на наличие забытых записей и удалить их, чтобы избежать утечки памяти, период проверки составляет несколько часов, так каксбой происходит очень редко, при этом сценарии, практически нормально ли использовать непараллельную карту?