【问题标题】:What is the use of strictfp modifier and synchronized keyword in main method of javajava的main方法中strictfp修饰符和synchronized关键字有什么用
【发布时间】:2023-03-04 02:27:02
【问题描述】:
public static synchronized strictfp void main(String... arg)

在上面的陈述中,有人可以解释一下synchronizedstrictfp对于main方法的用途。

【问题讨论】:

  • main() 方法应该由JVM调用,不应由程序员调用以供内部使用。因此它不应该被同步
  • 至于strictfp,你可能想看看this question。旁注:它是关键字,而不是修饰符。
  • @Turing85 - 它是一个修饰符,参见JLS
  • 我不认为synchronized 修饰符有目的,但它确实有效果——在程序的整个生命周期内,没有线程能够在类监视器上同步(除非主线程通过调用wait() 产生它。

标签: java main


【解决方案1】:

这里几乎没有对 java synchronized 给出很好的解释 - what-does-synchronized-meanlearning-java-use-of-synchronized-keyword

现在,如果 main 方法是同步的,那么只有一个线程可以进入这个方法,即 java 主线程(假设该类作为主类执行)。

为了执行这个方法,主线程将获取类级别的锁(是一个静态方法)。因此,如果该类有更多的静态同步方法,这些方法将永远被其他线程阻塞,直到主线程完成执行或进入等待状态。

strictfp是Java解释when-should-i-use-the-strictfp-keyword-in-javastrictfp-in-java

它与main() 没有任何不同的行为。

【讨论】:

    最近更新 更多