2015-07-11 6 views
0
public static synchronized strictfp void main(String... arg) 

В приведенном выше заявлении, может кто-то пожалуйста, объясните цель synchronized и strictfp для main метода.Что такое использование strictfp модификатора и синхронизированного ключевого слова в основной метод Java

+3

Метод main() предполагается вызывать JVM и не должен вызываться программистом для внутреннего использования. Таким образом, он не должен синхронизироваться –

+0

Что касается 'strictfp', вы можете взглянуть на [этот вопрос] (http://stackoverflow.com/questions/517915/when-should-i-use-the-strictfp-keyword -в-Java). Sidenote: это ключевое слово, а не модификатор. – Turing85

+1

@ Turing85 - Это модификатор, см. [JLS] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.3). – RealSkeptic

ответ

0

Мало хорошее объяснение для Java Синхронизировано даются здесь - what-does-synchronized-mean и learning-java-use-of-synchronized-keyword

Теперь, если основной метод синхронизации, только один поток может войти в этот метод, который является Java основного потока (при условии, что класс выполненный как основной класс).

Для выполнения этого метода основной поток получит блокировку уровня класса (статический метод). Итак, если класс имеет больше статических синхронизированных методов, они будут заблокированы навсегда для другого потока, пока основной поток не завершит выполнение или не перейдет в состояние ожидания.

strictfp является Java объясняется when-should-i-use-the-strictfp-keyword-in-java и strictfp-in-java

Он не имеет каких-либо другое поведение с main().

Смежные вопросы