多线程相关面试题

在这里插入图片描述

线程的基础知识

线程和进程的区别

在这里插入图片描述
在这里插入图片描述

并行和并发的区别

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建线程的方式有哪些

项目中使用 线程池来创建线程
在这里插入图片描述
继承thread类重写run方法
在这里插入图片描述
实现runnable接口
在这里插入图片描述
实现callable接口
重写call方法 带返回值
在这里插入图片描述
线程池创建线程
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

线程包括哪些状态,状态之间是如何变化的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新建T1、T2、T3三个线程,如何保证他们按顺序执行

在这里插入图片描述

notify()和notifyAll()有什么区别?

在这里插入图片描述

Java中wait和sleep方法的不同?

在这里插入图片描述

如何停止一个正在运行的线程?在这里插入图片描述

实际开发中,最好使用第一种或者第三种

线程中并发安全

synchronized关键字的底层原理

在这里插入图片描述
Monitorenter 上锁
Monitorexit 解锁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

JMM(Java内存模型)

在这里插入图片描述
在这里插入图片描述

CAS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

乐观锁和悲观锁

在这里插入图片描述
在这里插入图片描述

volatile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AQS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
总结
在这里插入图片描述

ReenterantLock的实现原理

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

synchronized和lock的区别

在这里插入图片描述

死锁产生的条件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ConcurrentHashMap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导致并发程序出现问题的根本原因(Java程序中如何保证多线程的执行安全)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

线程池

线程池的核心参数和执行原理

在这里插入图片描述
在这里插入图片描述

线程池中有哪些常见的阻塞队列

在这里插入图片描述
在这里插入图片描述

如何确定核心线程数

N当前cpu的核数
在这里插入图片描述
在这里插入图片描述
一般在Java中,都是IO密集型任务

线程池的种类有哪些

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

为什么不建议使用Executor创建线程池

在这里插入图片描述

使用场景

线程池使用场景(CountDownLatch、Future)(你们项目哪里用到了多线程)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何控制某个方法允许并发访问线程的数量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

谈谈你对ThreadLocal的理解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值