如果我创建一个只有方法而没有变量的类,每个方法都有自己的局部变量,那么该类是否是线程安全的?例如。
public class Client {
public String xyz(final String inputXML) {
DataInputStream dis = null;
DataOutputStream dout = null;
Socket clientSocket = null;
//do some processing
}
public String abc(final String inputXML) {
DataInputStream dis = null;
DataOutputStream dout = null;
Socket clientSocket = null;
//do some processing
}
}
现在,如果我启动此Client的多个线程,那么该类是否是线程安全的?
答案 0 :(得分:4)
是的,你的班级是线程安全的。
如果出现以下情况,则方法是线程安全的:
您的方法无法访问共享变量,因此是线程安全的
答案 1 :(得分:0)
理论上是的,实际上它取决于变量的值,如果它们是独立实例,或者它们指向系统中某处的相同实例