在Java中“同步”是什么意思?

这个问题在这里已经有了答案:

  • “同步”是什么意思? 15个答案

  • C ++中没有synchronized关键字。

    然而,Java中有一个方法意味着以下两件事:

  • 同一对象上的同步方法的两次调用不可能交错。 当一个线程正在执行一个对象的同步方法时,所有其他线程调用同一对象的同步方法块(挂起执行),直到第一个线程完成对象。
  • 当一个同步方法退出时,它会自动建立一个与之后调用同一个对象的同步方法的after-before关系。 这保证了对所有线程都可见的对象状态的更改。
  • 类似的规则适用于任意块。

    另外,我建议从同行评审的书中学习,而不是一些任意的非权威网站。


    在(Java)示例中

    public static synchronized Singleton getInstance()
    

    意味着一次只有一个线程应该能够访问getInstance()方法,以避免竞争条件。


    正如评论者已经指出的那样,synchronized是一个Java关键字。

    这意味着两个线程不能同时执行该方法,并且JVM负责执行该方法。

    在C ++中,你将不得不使用一些同步结构,比如临界区或互斥体。 你可以参考这个。

    链接地址: http://www.djcxy.com/p/91849.html

    上一篇: What does "synchronized" mean in Java?

    下一篇: Question About Deadlock Situation in Java