Есть простой глупый вопрос, который беспокоит меня и делает несколько аргументов в моем сознании. Я хочу выкинуть все сомнения относительно вопросов ниже.
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")
.
Тогда что будет с Thread 1? Будет ли он переходить в состояние сна?
Когда Thread 1 получил шанс, он возобновит выполнение из раздела 1, где он был приостановлен?
Как это происходит, когда один Clstest.testStaticMethod
и один и тот же Clstest.testStaticMethod
разделяются между всеми пятью нитями?
Есть ли возможность обменять inFileStr
на несколько потоков?