java - 抽象类的非抽象方法线程安全

标签 java synchronization abstract

我有一个带有非抽象方法的抽象类。我想知道这些非抽象方法默认情况下是否是线程安全的?

为了让问题更清楚,这里有一个例子

public abstract Class Animal {
  private List foo;
  non abstract method survive() {
    //bla bla bla
    foo++;
    foo = foo * 2
    foo = nul
    //bla bla bla
  }  
  abstract method eat();
  abstract method sleep();
}

public class Cat extends Animal {
  eat();
  sleep();
}

public class Dog extends Animal {
  eat();
  sleep();
}

//etc etc

如果猫和狗都想同时生存,Java 会默认处理它吗?或者我应该使 Animal.survive() 方法同步?

最佳答案

抽象类方法在并发访问方面没有任何特殊之处。如果您正在非抽象方法中处理静态资源,那么您应该使其同步以避免任何并发访问问题。

关于java - 抽象类的非抽象方法线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16485312/

相关文章:

java - JButtons 显示在父面板之外(?)

c# - 确保所有线程退出

java - 如何中断 Java Semaphore.tryAcquire 函数

具有泛型和继承的 java 抽象类 : Bound mismatch

algorithm - 枚举特定螺旋的零交叉点的最简洁方法

java - 实例化抽象类的通用扩展

java - 任何人都可以用示例解释 java EE 中的这些词。Presentation Tier .Business Tier .Integration Tier 吗?

Java:函数可以返回调用类和方法名称的任何简单方法?

java - Log4j 如何阻止记录器打印到控制台?

java - 同步与锁定