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