1234567891011121314151617181920212223242526272829303132 |
- import java.util.concurrent.*;
- import java.util.concurrent.atomic.*;
- public class TestAtomic {
- public static void main(String[] args) throws Exception {
- int threads = 1000;
- ExecutorService executor = Executors.newCachedThreadPool();
- CountDownLatch cd = new CountDownLatch(threads);
- Counter counter = new Counter();
- for (int i = 0; i < threads; i++) {
- executor.execute(() -> {
- counter.add();
- cd.countDown();
- });
- }
- cd.await();
- executor.shutdown();
- System.out.println(counter.get());
- }
- }
- class Counter {
- private AtomicInteger count = new AtomicInteger(0);
- void add() {
- count.incrementAndGet();
- }
- int get() {
- return count.get();
- }
- }
|