前言
我发现有不少人,表面看起来是 3-5 年的大佬了,但其实还是有很多基础知识很薄弱的,特别是涉及到多线程问题。
他们大部分都是因为小公司规模小不受限的原因,才没有过多使用过多线程。
等你换了一家新公司,你会发现各大实战中会出现多个有关多线程应用场景,到了这个时候,你就会发现就连应届生的基础都比你好,这就尴尬了。。。
经验(题库)
其实学习多线程,只要从实际应用场景出发去探索,这样从基础到底层的去学,就可以很好地摸透它,从而了解其实现原理和问题原因。
不知道大家面试的时候有没有出现过面试官问你关于多线程的面试题?
我收集了一些关于多线程的面试题,给大家分享一下,你看以下题是不是你所抗拒的“多线程”难题!
-
volatile 关键字的目的是什么?
-
i++ 这种操作为什么不支持原子性?
-
并发包里的原子类有哪些?怎么实现?
-
HashMap 如果一直 put 元素会发生什么变化?hashcode 如果全部相同怎么办?
-
线程池的底层如何实现的?有哪些常用参数?
-
HashMap 和 Hashtable 的底层实现有哪些区别?ConcurentHashMap 是如何