案例10个线程并发累加一个整数,每个线程累加1000,保证线程安全Unsafe类,来源于sun.misc包。该类封装了许多类似指针操作,可以直接进行内存管理、操纵对象、阻塞/唤醒线程等操作。

package com.jane;import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;public class Main { public static void main(String[] args) throws InterruptedException { AtomicInteger ai = new AtomicInteger(); List<Thread> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { Thread t = new Thread(new Accumlator(ai), "thread-" + i); list.add(t); t.start(); } for (Thread t : list) { t.join(); } System.out.println(ai); } static class Accumlator implements Runnable { private AtomicInteger ai; Accumlator(AtomicInteger ai) { this.ai = ai; } @Override public void run() { for (int i = 0, len = 1000; i < len; i++) { ai.incrementAndGet(); } } }}运行结果