多线程是java的一名必修课,熟悉并掌握多线程在面试中很重要。一般多线程的面试集中在底层实现,基本概念,线程池等问题。如果对多线程的概念有兴趣可以看下公众号中多线程系列的文章。
- Volatile的作用是什么?底层是怎么实现的?缓存的一致性协议是什么?有没有了解过内存屏障?
- Synchronized 的原理有了解?和reentryLock的区别是什么?锁升级是指什么?
- 并发和并行的概念有了解?Java实现并发的方式有几种?
- 线程和进程的概念?守护线程是干什么的?常见的守护线程有哪些?
- Java怎么创建一个线程,native关键字的作用是什么?Thread类中绝大部分的方法是native的,有了解过怎么实现的么?
- Runnable和callable分别是什么?Future的作用是什么?
- 线程的状态有哪些?是怎么转换的?Jvm怎么查看线程的运行状态?
- Sleep和wait的区别?Notify和notifyall的区别是啥?
- AQS的源码有了解过?怎么实现一个公平锁和非公平锁?共享和非共享?
- Condition的源码有了解么?什么是等待队列,什么是同步队列?
- 多线程的三个基本特性是什么?Java是怎么实现原子性,有序性,一致性呢?
- Thread 类中的start和run方法的区别是什么?
- Threadlocal有了解过?其使用在哪些场景?ThreadlocalMap的key 和value是什么?怎么保证内存不会泄露
- Java的CAS是怎么实现的?Atomic包中的atmoicinteger 和atmoicintegerFiledUpdater 的区别是什么?分别在什么场景下使用?
- Java的线程池是怎么实现的?其原理是什么?线程池怎么设计核心线程数和最大线程数,拒绝策略怎么选择?怎么优雅关闭一个线程池?
- 了解死锁么?怎么防止死锁?
- ConcurrenthashMap的put方法?其扩容过程有了解过?
- Java安全的阻塞队列有哪些?分别提供了什么功能?
- Java中提供了哪些线程安全的队列?
- Fork-join框架有了解过?ParallelStream有使用过?
- 简述一下JMM,as-if-serial语义、happens-before模型?
想要了解更多java内容(包含大厂面试题和题解)可以关注公众号,也可以在公众号留言,帮忙内推阿里、腾讯等互联网大厂哈