1.成员变量(成员变量、静态成员变量)
如果他们没有被共享,则线程安全。
如果他们被共享:
如果只有读操作,则线程安全。
如果有读写操作,则这段代码是临界区,需要考虑线程不安全。
public class ThreadList {
static final int threadNum = 2;
static final int loopNumber = 200;
public static void main(String[] args) {
ThreadUnSafe threadUnSafe = new ThreadUnSafe();
for (int i = 0; i < threadNum; i++) {
Thread t = new Thread(() ->{
threadUnSafe.method1(loopNumber);
}, "t" + i);
t.start();
}
}
}
class ThreadUnSafe {
List<String> list = new ArrayList();
public void method1(int loopNumber) {
for (int i = 0; i < loopNumber; i++) {
method2();
method3();
}
}