У меня есть HashSet, который содержит ключи HashMap и обновляет содержимое HashMap, добавляя новый ключ в процесс. После того, как я это сделал, я снова хочу использовать HashSet ключей, так как я знаю, что они постоянно обновлялись с помощью ключей HashMap. Я просто хочу убедиться, что это все сделано одним и тем же потоком, и что здесь нет параллелизма, о котором я мог бы не подозревать, так что я говорю HashMap добавлять новую запись, и до того, как она обновит I использовали информацию HashSet, когда она устарела.Создает ли JVM фоновые потоки при обновлении HashMap, так что HashSet его ключей может быть «устаревшим» в однопоточной программе?
В коде:
HashMap<String, Integer> myHashMap = new HashMap<String, Integer>();
HashSet<String> myHashSet = myHashMap.keySet();
... processing ...
myHashMap.put(new_key, value);
... use the **original** HashSet of keys, myHashSet ...
Может вышеописанная ситуация происходит, учитывая, что это единственная нить, созданная программистом, так что myHashMap и myHashSet бы из синхронизации? Я не говорю о программисте, создающем более одного потока - основная программа работает в одном потоке (см. Выше).
если вам нужно задать этот вопрос ** короткий ответ ** есть * да, все может пойти не так, и ** длинный ответ ** является слишком широким **. –
Мой вопрос отличается от того, который вы отметили как дубликат. Вы даже прочитали его, прежде чем вы отметили его? У меня только одна нить; Я хочу знать, создает ли JVM в фоновом режиме для обработки обновления HashMap. –
вы также ** ** неясны **, а также один из двух ** дубликатов ** и ** слишком широкий **, тогда, потому что ваш вопрос упоминает * параллелизм * и несколько потоков и использует слово * многопоточность *. Если у вас есть один поток, и вы спрашиваете об этом и не понимаете, что дубликат имеет нужные вам ответы, вам нужно попробовать и еще немного прочитать о том, что такое параллелизм и многопоточность, и как работает JVM. Что заставило бы вас думать, что JVM будет делать то, что вас беспокоит? Все из них даже слишком широк **, чем существующий вопрос. –