Mam funkcję, która używa Pattern#compile
i Matcher
do przeszukiwania listy ciągów dla wzorca.
Ta funkcja jest używana w wielu wątkach. Każdy wątek będzie miał unikalny wzór przekazany do, Pattern#compile
gdy zostanie utworzony. Liczba wątków i wzorców jest dynamiczna, co oznacza, że mogę dodać więcej Pattern
s i wątków podczas konfiguracji.
Czy muszę umieszczać synchronize
na tej funkcji, jeśli używa ona wyrażenia regularnego? Czy wyrażenie regularne w wątku Java jest bezpieczne?
compile()
metoda może nie być. Na przestrzeni lat pojawiły się dwa lub trzy błędy, które powodowały niepowodzenie kompilacji w środowiskach wielowątkowych. Poleciłbym kompilację w zsynchronizowanym bloku.