一、设计模式类
-
单例模式(双重校验锁)
public class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) instance = new Singleton(); } } return instance; } }
考察点:
volatile
禁止指令重排、双重检查优化性能、线程安全 -
生产者-消费者模式(BlockingQueue 实现)
public class ProducerConsumer { private final BlockingQueue<Integer> queue = new LinkedBlockingQueue<>(10); public void produce(int data) throws InterruptedException { queue.put(data); } public int consume() throws InterruptedException { return queue.take(); } }
考察点:线程间通信、阻塞队列的使用。
二、多线程与并发
-
两个线程交替打印 1-100(synchronized + wait/notify)
public class AlternatePrint { private static int num = 1; private static final Object lock = new Object();