Ich habe eine Funktion, die verwendet Pattern#compileund Matchereine Liste von Zeichenfolgen nach einem Muster durchsucht.
Diese Funktion wird in mehreren Threads verwendet. Jeder Thread hat ein eindeutiges Muster, das Pattern#compilebeim Erstellen des Threads übergeben wird. Die Anzahl der Threads und Muster ist dynamisch, was bedeutet, dass ich Patternwährend der Konfiguration weitere s und Threads hinzufügen kann .
Muss ich synchronizediese Funktion aktivieren, wenn sie Regex verwendet? Ist Regex im Java-Thread sicher?
compile()Methode jedoch möglicherweise nicht. Im Laufe der Jahre gab es zwei oder drei Fehler, die dazu führten, dass die Kompilierung in Multithread-Umgebungen fehlschlug. Ich würde empfehlen, die Kompilierung in einem synchronisierten Block durchzuführen.