Czy istnieje jakikolwiek ogólny sposób lub reguły wyjścia, dzięki którym możemy zapewnić bezpieczeństwo wątków metod statycznych używanych w różnych klasach użytkowych dla dowolnych aplikacji. Tutaj chcę wyraźnie wskazać bezpieczeństwo wątków aplikacji internetowych.Jak zapewnić bezpieczeństwo wątku użytecznej metody statycznej?
Dobrze wiadomo, że statyczne metody z niezmiennymi obiektami jako parametrami są bezpieczne dla wątków, a obiekty z możliwością mutowania nie.
Jeśli mam metodę użytkową do pewnego manipulowania java.util.Date
i ta metoda akceptuje instancję java.util.Date
, to ta metoda nie byłaby bezpieczna dla wątków. Jak zabezpieczyć wątek bez zmiany sposobu przekazywania parametrów?
public class DateUtils {
public static Date getNormalizeDate(Date date) {
// some operations
}
}
Czy możliwa jest zmiana klasy javax.faces.context.FacesContext
? Czy można bezpiecznie przesyłać instancję tej klasy do takiej statycznej metody użyteczności?
Ta lista klas, których wystąpienia mogą być lub nie mogą być przekazane jako parametry, może być długa; więc o jakich punktach powinniśmy pamiętać podczas pisania kodów takich klas użytkowych?
Dlaczego głosowanie i jedna bliska prośba? Czy to niewłaściwe pytanie? –
Czy rozważałeś wykonanie tej statycznej metody 'zsynchronizowanej'? –
@AndrewLogvinov tak, pomyślałem. Ale nie chcę synchronizować metody, nie wiedząc, dlaczego to robię. W jakich sytuacjach powinniśmy synchronizować statyczną metodę? –