这一篇作为一篇标签,记录下线程中一些常见的知识点,以及互相之间的分析和总结,希望通过这些知识来提高一下自己。 一、线程基础 1.同步原语 synchronize volatile volatile2 CAS操作 2.Java内存模型 JVM解释(繁琐) JVM解释2(简单) final域 3.Thread 线程间的状态切换 wait和notify方法分析 sleep/yield/join()分析 interrupt ThreadLocal LockSupport 二、并发框架 1.同步 AQS(1) AQS(2) AQS(3) AQS(4) Condition条件队列 2.限制 CountDownLatch CyclicBarrier(1) CyclicBarrier(2) Semaphore 3.原子操作 Automic类 4.线程安全集合 LinkedBlockingQueue ArrayBlockingQueue ConcurrentLinkedQueue(1) ConcurrentLinkedQueue(2) ConcurrentHashMap 5.线程池 ThreadPoolExecutor(1) ThreadPoolExecutor(2) ThreadPoolExecutor(3) 三、锁 1.按照锁的性质去分类 1.1 乐观锁/悲观锁 1.2 独占锁/共享锁 1.3 互斥锁和读写锁 独占和共享是一种宏观的说法,互斥和读写就是具体实现。 1.4 可重入锁 2.按照设计理念分类 这边我装备去了解一些常见的,有些太生僻的我也不会去看。 偏向锁/轻量级锁/重量级锁 自旋锁 锁的粗化和消除 更新中.....