单例的实现  

  静态内部类

    类加载

  枚举

    单例模式(避免反射、序列化问题)

      序列化之writeObject 和readObject

        静态变量不能被序列化,个人的理解是静态变量是类变量,序列化的那一刻只是取了当时的值,后面静态变量再改变,但已经序列化的不会变。

 

 

线程池

  参数ThreadFactory的作用及使用方法?

  CatchedThreadPool: batch

  FixedThreadPool: 

  SchedualThreadPool: 每分种自动解业务锁

  SingleThreadExecutor: 产品导入导出

  

AQS:   AbstractQueuedSynchronizer

   CountDownLatch

     多个或者一个线程等待一组线程完成,不可重置复用。

   CyclicBarrier

     多个线程相互等待,直到最后一个await,则所有线程继续向下走,扩展功能可以定义时传入一线程,在唤醒所有线程后先走此线程。可重置复用

   Semaphore

     控制线程并发数量,超数量的线程等待

   Lock,Condition

 

Synchronized原理

  锁升级过程

 

volatile指令重排

 

fast-fail和fast-safe

  非线程安全的集合如ArrayList,HashMap等都属于fast-fail。这类集合会维护一个modCount,集合每次结构有变时会+1,当用集合的生成Iterate时,会将modCount赋值给iterater的expectModCoount,其他线程如果修改集合结束了,则Iterater会抛错

 

设计模式

 

集合类线程安全不安全

 

 

 

 

posted on 2021-06-22 10:57  幸运叶  阅读(49)  评论(0编辑  收藏  举报