事情是这样的...
面试官:你好!你的一些信息我们已经初步了解了,咱们直接进入正题吧!
程序员:好的!
面试官:嗯,对多线程有一些深入了解是吧?
程序员:是的,多线程本身是学习Java语言入门到高级的必备能力,所以平时看得比较多
面试官:入门?呵呵~好那我就来好好问问,多线程有什么用?
程序员:一,发挥多核CPU 的优势;二,防止阻塞;三,便于建模
面试官:说说Java 实现线程的几种方式
程序员:继承 Thread 类实现多线程;实现 Runnable 接口方式实现多线程;使用 ExecutorService、Callable、Future 实现有返回结果的多线程
面试官:多线程同步有哪几种方法?
程序员:Synchronized 关键字,Lock 锁实现,分布式锁等
面试官:线程中的 wait()和 sleep()方法有什么区别?
程序员:sleep 方法和 wait 方法都可以用来放弃 CPU 一定的时间,不同点在于如果线程持有某个对象的监视器,sleep 方法不会放弃这个对象的监视器,wait 方法会放弃这个对象的监视器
面试官:线程数过多会造成什么异常?
程序员:线程过多会造成栈溢出,也有可能会造成堆异常
面试官:说一说乐观锁、悲观锁、自旋锁、死锁、活锁、饥饿、无锁、公平锁、非公平锁、重入锁、共享锁、独占锁、重量级锁、轻量级锁、偏向锁、分段锁、同步锁
程序员:...念贯口吗?
面试官:说不出来没关系,结合线程复用、线程池组成、拒绝策略和Java线程池工作过程来说说线程池工作原理
程序员:...
面试官:不知道?阻塞队列的原理呢?
程序员:...
面试官:这些都不知道,你写什么熟悉啊?
程序员:
面试官:行了,现在已经两点了,天色不早,回家等通知吧!
程序员:我TM写的熟悉又不是精通,你是不是搞我?
面试官:多线程都不敢写精通,你敢要26K?
敢要26k...要26k...26k...kkk...
你知道你和高薪的距离在哪里吗?
简单的多线程是Java编程入门必学知识之一,但是,基础的多线程知识远远无法满足成为一个高级Java工程师的标准。
要能熟练的解决并发等问题,充分了解线程池,知其然知其所以然,只有这样,在面试的时候,不是简简单单三五个小时能说完的。
具体需要掌握的内容下面有部分借鉴,由于多线程内容实在过多,小天这里就只把目录截出来了
- 面试题类
- 线程实现
- 4中线程池
- 线程生命周期
- Java锁
- 线程基本方法
- 线程上下文切换
- 线程池原理
- Java阻塞队列原理
- ThreadLocal
- CAS
- AQS
- 进程调度算法
部分内容呈现:
具体需要掌握的内容下面有部分借鉴,由于多线程内容实在过多,小光这里就只把目录截出来了
需要的朋友可以帮忙转发一下文章,一键三连后“加我VX小助理”即可免费领取!