Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?


Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?
文章图片
Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?
文章图片
Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?
文章图片
Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?
文章图片
Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?
文章图片
Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?

面试官:问你几个多线程相关的问题吧 , 说一下导致线程死锁的原因 , 怎么解除线程死锁?
程序员阿里:这个...死锁...
(一分钟后)
面试官:不知道?那好 , 说一下Lock 和 Synchronized 的区别?
程序员阿里:Lock是锁...
面试官:...会就会 , 不会就说不会 , 节省一下时间 , sleep 和 wait 的区别总该知道吧?
程序员阿里:...不怎么了解
面试官:那多线程的几种实现方式 , 什么是线程安全 , 这总该知道吧?
程序员阿里:咱能换个技术点问吗?
面试官:连多线程并发你都一问三不知 , 还要我们怎么进行下去?
在Java开发中 , 多线程一般是指实现多个任务共同执行的技术 , 是一个比较基础 , 也很常用的技术 。
要理解多线程 , 需要先搞懂几个概念:

进程:每个正在系统上运行的程序都是一个进程 。 每个进程包含一到多个线程 。 进程也可能是整个程序或者是部分程序的动态执行 。
线程:线程是一组指令的集合 , 或者是程序的特殊段 , 它可以在程序里独立执行 。 也可以把它理解为代码运行的上下文 。 所以线程基本上是轻量级的进程 , 它负责在单个程序里执行多任务 。 通常由操作系统负责多个线程的调度和执行 。 线程是程序中一个单一的顺序控制流程 。
多线程:在单个程序中同时运行多个线程完成不同的工作 , 称为多线程 。
并发:在操作系统中 , 并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间 , 且这几个程序都是在同一个处理机上运行 , 但任一个时刻点上只有一个程序在处理机上运行 。
多线程并发同样也是面试问题中很大概率会问到的技术点 。
下面给大家整理了一套多线程并发相关的核心面试点 , 把所有多线程并发常见的面试题汇总到了一起 。
这些知识点的导图和问题的答案详解的PDF文档都可以免费分享给大家 , 帮小编转发一下文章后 , 私信【多线程】免费领取!
Java多线程并发

1. JAVA 并发知识库
2. JAVA 线程实现/创建方式
1. 继承 Thread 类
2. 实现 Runnable 接口
3. ExecutorService、Callable<Class>、Future 有返回值线程
4. 基于线程池的方式
3. 4 种线程池

1. newCachedThreadPool
2. newFixedThreadPool
3. newScheduledThreadPool
4. newSingleThreadExecutor
4. 线程生命周期(状态)

1. 新建状态(NEW)
2. 就绪状态(RUNNABLE)
3. 运行状态(RUNNING)
4. 阻塞状态(BLOCKED)


推荐阅读