Існує просте дурне запитання, яке мене турбує і висуває кілька міркувань. Я хочу викинути всі сумніви щодо нижчезазначених питань.
class Clstest{
public static String testStaticMethod(String inFileStr) {
// section 0
// section 1
// do something with inFileStr
// section 2
// section 3
return inFileStr;
}
}
Припустимо, що п’ять потоків виконує дзвінок Clstest.testStaticMethod("arg-n")
одночасно.
Тема 1 дзвінків Clstest.testStaticMethod("arg-1")
.
Коли нитка 1 знаходиться в розділі 1, нитка 2 дзвонить Clstest.testStaticMethod("arg-2")
.
Тоді що буде з Ниткою 1? Чи перейде він у стан сну?
Коли Тема 1 отримає шанс, чи відновить її виконання з розділу 1, де було призупинено?
Як це відбувається, коли один Clstest.testStaticMethod
і той же Clstest.testStaticMethod
розділяється між усіма п’ятьма потоками?
Чи є можливість обмінятися inFileStr
надісланим декількома потоками?