在java中,默认情况下实例方法能够并发执行吗?

在java中,默认情况下实例方法能够并发执行吗?,java,concurrency,synchronized,Java,Concurrency,Synchronized,我知道synchronized关键字,但我想确保我有一个清晰的理解 因此,如果我不使用synchronized关键字,一个实例变量可能会被两个线程覆盖,但是如果我使用synchronized关键字,一次只能有一个线程进入该方法。对吧? 如果不使用synchronized关键字,实例变量可能会被两个线程覆盖 它不会被覆盖,但可以由两个线程同时执行,如果它不是为处理这种情况而设计的,则可能会导致不一致 如果我使用synchronized关键字,一次只能有一个线程进入该方法 如果使方法同步,这是正确的

我知道synchronized关键字,但我想确保我有一个清晰的理解

因此,如果我不使用synchronized关键字,一个实例变量可能会被两个线程覆盖,但是如果我使用synchronized关键字,一次只能有一个线程进入该方法。对吧?

如果不使用synchronized关键字,实例变量可能会被两个线程覆盖

它不会被覆盖,但可以由两个线程同时执行,如果它不是为处理这种情况而设计的,则可能会导致不一致

如果我使用synchronized关键字,一次只能有一个线程进入该方法

如果使方法同步,这是正确的:该关键字提供一定数量的保证,包括互斥

如果不使用synchronized关键字,实例变量可能会被两个线程覆盖

它不会被覆盖,但可以由两个线程同时执行,如果它不是为处理这种情况而设计的,则可能会导致不一致

如果我使用synchronized关键字,一次只能有一个线程进入该方法


如果使方法同步,这是正确的:该关键字提供一定数量的保证,包括互斥。

如果两个线程进入一个不同步的方法并更新一些共享状态,则可能导致不一致

public synchronized void method(){ 
      //only one thread will be able to enter (IF SAME INSTANCE)
}
但它也建立了一种先发生后发生的关系。这是多线程的可见性部分

两个动作可以由“发生在之前”关系排序。如果有 动作发生在另一个动作之前,然后第一个动作对和可见 在第二天之前订购


JLS.

如果两个线程进入一个不同步的方法并更新一些共享状态,那么它可能会导致不一致

public synchronized void method(){ 
      //only one thread will be able to enter (IF SAME INSTANCE)
}
但它也建立了一种先发生后发生的关系。这是多线程的可见性部分

两个动作可以由“发生在之前”关系排序。如果有 动作发生在另一个动作之前,然后第一个动作对和可见 在第二天之前订购


JLS.

@VictorSorokin我认为标题中的问题实际上是:在java中,默认情况下实例方法可以并发执行吗?-在这种情况下,答案是肯定的。有人应该编辑这个问题新标题更好吗?@VictorSorokin我认为标题中的问题实际上是:在java中,默认情况下实例方法可以并发执行吗?-在这种情况下,答案是肯定的。应该有人编辑这个问题。新标题更好吗?