并发学习路线

来源:互联网 发布:淘宝卖家电话人工服务 编辑:程序博客网 时间:2024/06/06 16:26

volatile、synchronized关键字(阻塞的方式)->ReentrantLock 、 ReentrantReadWriteLock(CAS实现锁,AQS的思想实现)->线程安全的集合( 非阻塞的集合类、阻塞的队列)->线程池的使用。

ReentrantLock 、 ReentrantReadWriteLock: 通过与condition一起使用,增加多线程之间的交互性。(AQS实现思想)

并发阻塞队列:有界阻塞队列ArrayBlockingQueue、无界阻塞延迟队列DelayQueue、无界阻塞LinkedBlockingQueue、无界阻塞优先级队列PriorityBlockingQueue。

并发非阻塞队列: 无界非阻塞concurrentLinkedQueue、SynchronousQueue、Exchanger 和 ConcurrentSkipListMap。

线程池: ThreadPoolExecutor类(coreSize,maxSize,time,timeUnit,blockingQueue)、ExecutorService接口(通过Executors.singleExecutor、newCacheExecutor、newFixedExecutor)。(delete)

基本数据类型和关键字:关键字:volatile、synchronized。封装的线程安全的原子类型:AtomicInteger、AtomicReference、AtomicFieldReference。

:排它锁:AbstractOwnableSynchronizer、AbstractQueuedLongSynchronizer、AbstractQueuedSynchronizer。可重入锁、读写锁:ReentrantLock、ReentrantWriteReadLock、LockSupport、WriteLock(写锁支持单一用户写,单用户读数据)、ReadLock(读锁支持多用户同时读,不能同时读)。

集合:基本集合对用的线程安全的集合:非阻塞线程安全的集合(CAS):concurrentHashMap、concurrentLinkedQueue、concurrentLinkedDeque。concurrentSkipListMap。阻塞的线程安全的集合(锁实现的):DelayQueue(无界延迟阻塞队列)、ArrayBlockingQueue(有界阻塞队列)、LinkedBlockingQueue(无界阻塞队列)、PriorityBlockingQueue(优先无界阻塞队列),实现线程安全的集合类。

同步器:countDownLatch(计数器)、cyclicBarrier(栏姗)、semaphore(信号量)、Exchange(交换数据,一般使用场景是通过buffer、清空buffer中的数据)、FutureTask(异步工作),执行线程同步的工作。

线程管理:Callable(被执行的任务)、Executor(执行的任务)、Future(异步提交的返回数据)、ExecutorService、ThreadPoolService、ScheduledExecutorService是ExecutorService的扩展接口,主要扩展了可以用任务调度的形式(延迟或定期)执行Runnable或Callable任务、Executors是工具类用于创建线程管理的实例。

原创粉丝点击