使用atomicInteger解决了原子性问题(AtomicInteger保证每次只能一个线程操作count)
package com.cppdy; import java.util.concurrent.atomic.AtomicInteger; class MyThread10 extends Thread { //AtomicInteger每次只能一个线程操作count
private static AtomicInteger count = new AtomicInteger(0); @Override
public void run() {
addCount();
} public void addCount() {
for (int i = 0; i < 1000; i++) {
count.incrementAndGet();
}
System.err.println(getName()+"--"+count.get());
}
} public class ThreadDemo10 { public static void main(String[] args) throws Exception {
MyThread10[] mtList = new MyThread10[10];
for (int i = 0; i < mtList.length; i++) {
mtList[i]=new MyThread10();
}
for (int i = 0; i < mtList.length; i++) {
mtList[i].start();
}
} }
原子性:保证10个线程都对count加了1000次,最终结果为10000