从开头的思维导图里我们可以发现多线程的知识点还是很多的,我们起码得知道:
-
线程和进程的区别
-
Thead类的常见方法
-
可以用什么手段来解决线程安全性问题
-
Synchronized和Lock锁的区别
-
什么是AQS、ReentrantLock和ReentrantReadWriteLock锁
-
JDK自带的线程池有哪几个,线程池的构造方法重要的参数
-
什么是死锁,怎么避免死锁
-
CountDownLatch、CyclicBarrier、Semaphore是什么?
-
Atomic包下的常见子类,什么是CAS,CAS会有什么问题
-
ThreadLocal是什么?
-
……//
虽然在工作中未必会全部用得上,但如果项目真的用到了,我们如果学过了可能就可以很快地理解当时为什么要这样设计(我觉得去挖掘过程还是挺有意思的)。
「我可能不用,但你必须要有」
这个道理也很容易懂:「我买电脑的时候,虽然我是木耳听不出什么音质出来,但你音质就是得好」。企业招人的时候也一样「你在工作的时候未必要写,但你必须要会」
至少在我看来,从求职的角度出发,多线程是很重要的。之前我还整理过在我当时校招经常被问到的多线程面试题目:
-
多线程了解多少啊?使用多线程会有什么问题?你是怎么理解“线程安全”的?
-
如果我现在想要某个操作等待线程结束之后才执行,有什么方法可以实现?为什么要用CountDownLatch?CountDownLatch的底层是什么?(引出AQS)
-
synchronized关键字来说一下,它的用途是什么?synchronized底层的原理是什么?
-
线程安全的容器有哪些?(着重于ConcurrentHashMap、CopyWriteOnArrayList与其他非线程安全容器的区别以及它们的具体实现)
-
ThreadLocal你了解过吗?主要是用来干什么的?具体的源码实现原理来说一下吧
-
产生死锁的条件是什么?我们可以如何避免死锁?(可延伸到操作系统层面上的死锁)
-
synchronized锁和ReentrantLock锁有什么区别呀?
-
线程池你应该也看过吧,来说说为什么要用线程池。JDK默认实现了几个线程池,分别有xxx(自然地ThreadPoolExecutor构造函数的常用几个参数你也得一起说出来)
-
…
转发+关注,然后私信回复关键字 “笔记” 即可获得《Java多线程知识点总结》PDF文档资料的免费领取方式!
一、什么是多线程
========
初识多线程
-
1.1介绍进程
-
1.2回到线程
-
1.3进程与线程
-
1.4并行与并发
-
1.5Java实现多线程
-
1.6Java实现多线程需要注意的细节
二、Thread类解析
===========
Thread线程类API
-
1.2守护线程
-
1.3优先级线程
-
1.4线程生命周期
三、使用多线程需要注意的问题
==============
-
1、使用多线程遇到的问题
-
2、对象的发布与逸出
-
3、解决多线程遇到的问题
-
4、多线程需要注意的事 -总结
四、synchronized锁和lock锁
=====================
-
1、synchronized锁
-
2、Lock显式锁
-
3、Java锁简单总结
五、AQS
=====
-
1、AQS是什么?
-
2、简单看看AQS
六、ReentrantLock和ReentrantReadWriteLock
======================================
-
1、ReentrantLock锁
-
2、ReentrantReadWriteLock
-
3、最后
七、线程池
=====
- 1、线程池简介
总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
17)]
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。