一、基本线程实现
runnable (interface)
Thread (class)
stop() interrupt() (即将废弃)
thread.suspend()/ resume()
obj.wait() obj.notify() semphare
yield() join() (等待线程全部结束)
setDaemon() ThreadGroup() setPriority()
synchronized { method / object / class } 加锁的方式,性能较差
二、JDK并发包
1. Locks:
ReentrantLock() Condition
ReadWriteLock()
Semaphore
CyclicBarrier / CountDownLatch
2. thread pool:
ExecutorService es = Executos.newFixedThreadPool(5);
newSingle
ThreadPool()
newCached
ThreadPool()
newScheduledThreadPool()
join / fork
3. Containers:
ConcurrentHashMap
CopyonWriteArrayList
ConcurrentLinkedQueque
BlockingQueque
ConcurrentSkipList
三、无锁机制
AtomicInteger
AtomaticReference (ABA问题)
AtomaticStampedReference
AtomaticIntegerArray
Vector(有锁线程安全,但效率低于无锁,但好实现)
四、其他
Disruptor (对比BlockingQueque, 也实现cache优化)
Futher (future模式和futherTask类,用在线程池)
NIO / AIO
AKKA