坚信每个脚步~
java中并发编程实用类 java.util.concurrent (详细情况请查看API),觉得比较有用的有:
ThreadLocal :是线程对应的变量(泛型),每个线程对应相应的变量。底层可能是由Map<Thread,Object>构成;
主要的方法有 T get() void set(T value)
Semaphore:是一个计数信号量,相当于权限,只有能够获得权限的线程才能执行相应的操作,否则只有等待。
主要方法:acquire() 从信号量中获取一个许可,只有获得许可之后才能执行相应的操作
release() 释放许可,将该许可返还给信号量
Condition:代替了Object中监视器方法(wait() notify() notifyAll() ,而Lock则代替了synchronized相应的部分。
主要方法:await()
signal() signalAll()
阻塞队列:
LinkedBlockingQueue
、ArrayBlockingQueue
、SynchronousQueue
、PriorityBlockingQueue
和 DelayQueue
。
同步集合类:
ConcurrentHashMap
、ConcurrentSkipListMap
、ConcurrentSkipListSet
、CopyOnWriteArrayList
和 CopyOnWriteArraySet