![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试总结
文章平均质量分 79
积累总结
卫门口黄大爷
这个作者很懒,什么都没留下…
展开
-
多线程(线程池)
多线程(三)线程池1)常见的线程池及使用场景2)线程池的运行机制3)线程池的拒绝策略4)阻塞队列5)怎么理解无界队列和有界队列?6)重要参数线程池1)常见的线程池及使用场景newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。public static ExecutorService newSingleThreadExecutor() { return new F原创 2020-09-14 01:47:07 · 91 阅读 · 0 评论 -
多线程(Volatile)
多线程(二)前序 JMM(JavaMemoryModel)现代计算机的内存模型JMM有以下规定:1)多线程间的可见性的解决方案?(可见性)1.1 为啥加锁可以解决可见性问题呢?1.2 Volatile做了什么?2)当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致,那同步回到主内存时以谁的缓存数据为准呢?(一致性)MESI(缓存⼀致性协议)2.1 至于是怎么发现数据是否失效呢?2.2 嗅探的缺点?前序 JMM(JavaMemoryModel)JMM :Java内存模型,是ja原创 2020-09-13 15:08:29 · 236 阅读 · 0 评论 -
多线程(synchronized,ReentrantLock,公平锁与非公平锁)
1、synchronizedsynchronized加锁,synchronized 是最常⽤的线程同步⼿段之⼀,CAS是乐观锁的实现,synchronized就是悲观锁了。1)synchronized锁升级过程jdk1.6 中为了减少获得锁和释放锁带来的性能消耗⽽引⼊的偏向锁和轻量级锁。针对 synchronized 获取锁的⽅式,JVM 使⽤了锁升级的优化⽅式,就是先使⽤偏向锁优先同⼀线程然后再次获取锁,如果失败,就升级为 CAS 轻量级锁,如果失败就会短暂⾃旋,防⽌线程被系统挂起。最后如果原创 2020-09-10 17:15:25 · 657 阅读 · 0 评论 -
集合篇(list、map、set)
集合篇(一)1、ArrayList1)是什么2)有哪些用?3)为什么线程不安全还用它?4)如何初始化的数组大小?5)不断加数据,是如何扩容的?6)1.7和1.8版本初始化的时候的区别?7)ArrayList在增删的时候是怎么做的,为什么慢?8)ArrayList插入删除⼀定慢么?删除怎么实现的呢?9)ArrayList是线程安全的么?10)ArrayList用来做队列合适么?11)数组适合用来做队列么?12)ArrayList的遍历和LinkedList遍历性能比较如何?2、LinkedList是什么?为什原创 2020-09-10 00:35:08 · 210 阅读 · 0 评论