在java中,默认情况下实例方法能够并发执行吗?
我知道synchronized关键字,但我想确保我有一个清晰的理解 因此,如果我不使用synchronized关键字,一个实例变量可能会被两个线程覆盖,但是如果我使用synchronized关键字,一次只能有一个线程进入该方法。对吧? 如果不使用synchronized关键字,实例变量可能会被两个线程覆盖 它不会被覆盖,但可以由两个线程同时执行,如果它不是为处理这种情况而设计的,则可能会导致不一致 如果我使用synchronized关键字,一次只能有一个线程进入该方法 如果使方法同步,这是正确的:该关键字提供一定数量的保证,包括互斥 如果不使用synchronized关键字,实例变量可能会被两个线程覆盖 它不会被覆盖,但可以由两个线程同时执行,如果它不是为处理这种情况而设计的,则可能会导致不一致 如果我使用synchronized关键字,一次只能有一个线程进入该方法在java中,默认情况下实例方法能够并发执行吗?,java,concurrency,synchronized,Java,Concurrency,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中,默认情况下实例方法可以并发执行吗?-在这种情况下,答案是肯定的。应该有人编辑这个问题。新标题更好吗?