Class Shared{
public void sharedMethod(Object o){
//does something to Object
}
}
//this is how threads call the shared method
run(){
sharedInstance.sharedMethod(someObject);
}
Jetzt wird o
als Parameter an die Methode übergeben. Und die gleiche Methode wird von mehreren Threads parallel aufgerufen. Können wir sicher sagen, dass dieser Code threadsicher ist?Sind Methodenparameter in Java threadsicher?
Es gibt zwei Szenarien:
- Wenn die
someObject
- unter den Threads gemeinsam genutzt wird, wenn jeder Thread seine eigene Kopie hat
someObject
Nein, das kann man nicht sagen. – bmargulies