Mehrere Threads aufrufen statische Hilfsmethode

Ich habe eine web-Anwendung auf Tomcat.

Es gibt verschiedene Berechnungen, die getan werden müssen, die auf mehrere Orte in der web-Anwendung. Kann ich die Berechnungen statische helper-Funktionen? Wenn der server über genügend Prozessorkerne können mehrere Anrufe an, die statische Funktion (eine Folge von mehrfachen Anfragen an verschiedene servlets) laufen parallel? Oder ist eine Aufforderung zu warten, bis der andere Anfrage beendet den Anruf?

public class Helper {
    public static void doSomething(int arg1, int arg2) {
        //do something with the args
        return val;
    }
}

wenn die Aufrufe parallel laufen:
Ich habe noch eine helper-Klasse mit statischen Funktionen, sondern beinhaltet die Klasse eine private statische member, die in der statischen Funktionen. Wie kann ich sicherstellen, dass das Funktionen sind thread-sicher?

public class Helper {

    private static SomeObject obj;

    public static void changeMember() {
        Helper.obj.changeValue();
    }

    public static String readMember() {
        Helper.obj.readValue();
    }

}

changeValue() und readValue() Lesen/ändern Sie die gleichen member-variable des Helper.obj. Muss ich, um die ganze statische Funktionen synchronisiert werden, oder nur der block, wo Helper.obj verwendet wird? Wenn ich sollte ein block, was für ein Objekt soll ich verwenden, um es zu sperren?

  • ich danke Ihnen allen, dass Sie definitiv meine Frage beantwortet und außerdem gab mir Denkanstöße. ich kann leider nicht akzeptieren mehrere Antworten :-/
InformationsquelleAutor MarioP | 2011-06-01
Schreibe einen Kommentar