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