Я пишу переводчик, и у меня довольно много строковых литералов java, которые используются переводчиком.У меня есть свой собственный неблокирующий потокобезопасный токенизатор, который быстрее, чем java.util.regex.Matcher для сложных задач, и в отличие от класса Matcher, является неизменным, так что мой токенизатор / Matcher может использоваться совместно, как неизменный конечный класс, среди нескольких потоков, которыевыполняем перевод.
Классу matcher нужен специальный строковый класс, который похож на CharSequence, но настроен на мой токенизатор.Один подкласс моего sequence / stringvariant, который построен из java.lang.String, является неизменным, и поэтому мой единственный синглтон-транслятор, совместно используемый несколькими потоками, имеет внутреннюю хэш-карту, которая отображает String в MyString.Я хочу интернировать свои неизменяемые строковые варианты, которые используются в моем неизменяемом токенизаторе, потому что многие литералы одинаковы.
Итак, у меня есть один интернирующий хэш-файл, но, к сожалению, он добавляется статическими инициализаторами несколькихдругие классы, и поэтому это звучит как карта, которая не является потокобезопасной.Как я могу постепенно построить эту интернированную карту, не получая из нее блок?Я также не хочу использовать неблокирующую параллельную хэш-карту.Гол, просто хэш-карта.
Энди