方法内部的变量为线程安全的
“非线程安全”问题存在于“实例变量中”如果是方法内部的私有变量,则不存在“非线程安全”的问题,所得的结果也就是“线程安全”的了
实例变量非线程安全
如果多个线程共同访问一个对象中的实例变量,则有可能出现“非线程安全”的问题。
用线程访问的对象中如果有多个实例变量,则运行的结果可能有可能出现交叉的情况。
如果只有一个实例变量则有可能出现覆盖的情况,看下面的测试:
创建新的项目,HasSelfPrivateNum.java的代码如下:
public class HasSelfPrivateNum {
private int num = 0;
public void addI(String userName) {
try {
if (userName.equals("a")) {
num = 100;
System.out.println("a set over");
Thread.sleep(2000);
} else {
num = 200;
System.out.println("b set over");
}
System.out.println(userName + "num = " + num);
} catch (InterruptedException e) {