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