我有一个带有非抽象方法的抽象类。我想知道这些非抽象方法默认情况下是否是线程安全的?
为了让问题更清楚,这里有一个例子
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/