多线程面试题1

多线程面试题1

1.创建线程的几种方式?

在这里插入图片描述

2.实现一个线程有哪几种方式,各有什么优缺点,比较常用的是那种?

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

3.多线程解决同步问题的方式?

在这里插入图片描述

4.说一说自己对于synchronized关键字的了解

在这里插入图片描述

5.说说自己是怎么使用 synchronized 关键字,在项目中用到了吗

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

6.讲一下 synchronized 关键字的底层原理

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

monitor对象

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

7.谈谈synchronized和ReentrantLock的区别

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

8.讲一下Java内存模型

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

9.说说synchronized关键字和 volatile关键字的区别

在这里插入图片描述

10.介绍一下Atomic原子类

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

11.能不能给我简单介绍一下 AtomicInteger类的原理

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

12.互斥锁和自旋锁的区别

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

13.读锁和写锁

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

14.乐观锁和悲观锁的区别

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

15.CAS是怎么实现线程安全的?

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

16.CAS的缺点

ABA问题

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

循环时间长开销大的问题

在这里插入图片描述

只能保证一个共享变量的原子操作

在这里插入图片描述

17.如何解决ABA问题

在这里插入图片描述

update table set value = newValue ,vision = vision + 1 where value = #{oldValue} and vision = #{vision} 
// 判断原来的值和版本号是否匹配,中间有别的线程修改,值可能相等,但是版本号100%不一样

在这里插入图片描述

18.synchronized如何保证同一时刻只有一个线程可以进入临界区呢?

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

19.简单介绍可重入锁

在这里插入图片描述

20.引起线程切换的几种方式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值