Існує просте дурне запитання, яке мене турбує і висуває кілька міркувань. Я хочу викинути всі сумніви щодо нижчезазначених питань.
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надісланим декількома потоками?