Являются ли локальные переменные "общими" при использовании метода?
Нет, это не так.Каждый поток, выполняющий метод, имеет свою собственную копию локальных переменных, и они не зависят друг от друга.Когда метод возвращает, конкретная копия локальных для этого конкретного потока отбрасывается.(*)
Что происходит, например, если статический метод вызывается / используется одновременно из разных потоков?Один поток блокируется, пока другой не завершится и т. Д.?
Нет, они не делают;они просто будут выполнять метод в двух отдельных стеках одновременно.Если вы на самом деле хотите их заблокировать, используйте оператор блокировки , который заставляет второй поток, который входит в оператор блокировки, ждать, пока первый не вернется из оператора блокировки.Это может быть необходимо, если ваш метод обращается к (нелокальным) полям, которые являются общими данными.
В многопоточном приложении, когда не должен использовать статический метод?
Нужно ли использовать статический метод или нет, зависит от того, требует ли метод работы с объектом, но не имеет никакого отношения к тому, является ли ваше приложение многопоточным или нет.Для целей многопоточности статический метод не является чем-то особенным по сравнению с нестатическим методом.
(*) Это может больше не быть правдой, если у вас есть лямбда-выражение или анонимный методвнутри метода, который использует локальные переменные, но это техническая часть.