Ho una funzione che usa Pattern#compilee a Matcherper cercare un pattern in un elenco di stringhe.
Questa funzione viene utilizzata in più thread. Ogni thread avrà un modello univoco passato al Pattern#compilemomento della creazione del thread. Il numero di thread e modelli è dinamico, il che significa che posso aggiungere più se Patternthread durante la configurazione.
Devo mettere un synchronizesu questa funzione se usa regex? Le espressioni regolari nel thread java sono sicure?
compile()metodo potrebbe non esserlo. Ci sono stati due o tre bug nel corso degli anni che hanno causato il fallimento della compilazione in ambienti multithread. Consiglierei di fare la compilazione in un blocco sincronizzato.