public class AtomicIntegerTest {
//原子操作:使用 AtomicInteger自增、自减 达到同步的效果
private AtomicInteger num = new AtomicInteger(0);
public static void main(String[] args) throws InterruptedException {
AtomicIntegerTest a = new AtomicIntegerTest();
for(int i=0;i<50;i++) {
a.newThread();
}
System.out.println(a.num.get());
}
void newThread() throws InterruptedException{
Thread t = new Thread(new T());
t.start();
t.join();
}
class T implements Runnable{
public void run() {
//int i = num.incrementAndGet(); //++i
int i = num.decrementAndGet(); //--i
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class AtomicLongTest {
//原子操作:使用 AtomicLong自增、自减 达到同步的效果
private AtomicLong num = new AtomicLong(0);
public static void main(String[] args) throws InterruptedException {
AtomicLongTest a = new AtomicLongTest();
for(int i=0;i<50;i++) {
a.newThread();
}
// System.out.println(a.num.get());
}
void newThread() throws InterruptedException{
Thread t = new Thread(new T());
t.start();
// t.join();
}
class T implements Runnable{
public void run() {
long i = num.incrementAndGet(); //++i
//long i = num.decrementAndGet(); //--i
System.out.println(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}