Zachowanie metody statycznej w środowisku wielowątkowym w Javie
Jest takie proste głupie pytanie, które mnie niepokoi i kilka argumentów w mojej głowie. Chcę wyrzucić wszystkie wątpliwości dotyczące poniższych pytań.
class Clstest{
public static String testStaticMethod(String inFileStr) {
// section 0
// section 1
// do something with inFileStr
// section 2
// section 3
return inFileStr;
}
}
Załóżmy, że istnieje pięć wątków, z których każdy wykonuje wywołanieClstest.testStaticMethod("arg-n")
w tym samym czasie.
Połączenia z wątkiem 1Clstest.testStaticMethod("arg-1")
.
Gdy wątek 1 znajduje się w sekcji 1, wywołania wątku 2Clstest.testStaticMethod("arg-2")
.
Co zatem stanie się z wątkiem 1? Czy przejdzie w stan uśpienia?
Gdy wątek 1 dostanie szansę, wznowi wykonywanie z sekcji 1, w której został wstrzymany?
Jak to się dzieje, gdy jest jedenClstest.testStaticMethod
i to samoClstest.testStaticMethod
jest dzielony między wszystkie pięć wątków?
Czy istnieje możliwość wymianyinFileStr
wysłany przez wiele wątków?