Автор|С любовью
Оригинальный текст: blog.csdn.net/qq_36520235/article/details/86653136
Первое состояние:
Когда поток 1 только что расширил массив, он собирается подготовиться к повторному хешированию, но в это время принудительно вставляется и выполняется поток 2, а диаграмма состояний после повторного хеширования потока 2 (поток 1 представлен верхней частью, а поток 1 представлена нижняя часть) это нить два)
Второй утверждает:
В этот момент поток пробудился, и нужно запустить операцию перехеширования.Узел с ключом 5 по-прежнему висит на позиции индекса массива 1, а за узлом с ключом 5 следует узел 9 (фактически ,предыдущий тут).Массив расширили до 4,а потом индекс надо переставить,так вот остаток 4,и то соответствующий связному списку под соответствующим индексом массива)
Третье состояние:
Продолжаем обрабатывать узел с ключом 9 из первого состояния, поэтому он весь должен висеть в связанном списке с индексом 1 в массиве корзин, а порядок 9---->5---->NULL
Четвертое состояние:
В это время, после обработки 9 на третьем шаге, он обнаружил, что за узлом 9 находится узел 5 (этот узел 5 остался после перехеширования потока 2), в это время он поместит узел 5 в заголовок в thread one в это время 5---->9----5 (9->5 в последней части оставлено третьим зарезервированным состоянием), и здесь образуется бесконечный цикл.
Наконец
Добро пожаловать в официальный аккаунт: Программист в погоне за ветром, ответьте 66 и получите сводку основных знаний Java в 300-страничном документе в формате PDF!
Содержание этих материалов — это те знания, которые интервьюер должен задать во время интервью.Глава включает в себя множество точек знаний, в том числе базовые знания, коллекции Java, JVM, многопоточный параллелизм, принципы Spring, микросервисы, Netty и RPC, Kafka, журналы, шаблоны проектирования, алгоритмы Java, базы данных, Zookeeper, распределенные кэши, структуры данных и многое другое.