Ho una funzione che usa Pattern#compile
e a Matcher
per cercare un pattern in un elenco di stringhe.
Questa funzione viene utilizzata in più thread. Ogni thread avrà un modello univoco passato al Pattern#compile
momento della creazione del thread. Il numero di thread e modelli è dinamico, il che significa che posso aggiungere più se Pattern
thread durante la configurazione.
Devo mettere un synchronize
su 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.