国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Java > Java中锁有哪些面试题?

Java中锁有哪些面试题?

面试题

头像

2021-02-08 17:27:2740725浏览 · 0收藏 · 0评论

我们在提到线程安全的时候,会选择锁的方法来进行解决。在java中锁的类型对应被分成了六种,我们接触了两种最多的锁方法是lock和synchronized,这也是面试中最常问到的原理和作用机制题目。下面我们就Java中锁的常见面试题带来展示,大家也来看一看自己能否全部答出。

1.synchronized作用于静态方法和非静态方法的区别

非静态方法:

给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥

静态方法: 相当于在类上加锁(*.class位于代码区,静态方法位于静态区域,这个类产生的对象公用这个静态方法,所以这块内存,N个对象来竞争),

这时候,只要是这个类产生的对象,在调用这个静态方法时都会产生互斥。即该类所有的对象都共享一把锁。

2.锁类型有哪些

(1)乐观锁&悲观锁

(2)自旋锁&非自旋锁

(3)可重入锁&不可重入锁

(4)无锁&轻量级锁&偏向锁&重量级锁

(5)互斥锁&共享锁

(6)公平锁&非公平锁

3.线程同步的几种方式

synchronized修饰

volatile实现同步(只能保证可见性,不能保证原子性)

使用局部变量ThreadLocal

使用原子类(AtomicInteger、AtomicBoolean……)

使用Lock

使用容器类(BlockingQueue、ConcurrentHashMap)

4.synchronized 和 lock 机制区别

synchronized 原始采用的是 CPU 悲观锁机制,即线程获得的是独占锁。独占锁意味着其 他线程只能依靠阻塞来等待线程释放锁。

Lock 用的是乐观锁方式。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。乐观锁实现的机制就是 CAS 操作(Compare and Swap)。

5.说说线程安全的问题

线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。

 Java 多线程编程当中,提供了多种实现 Java 线程安全的方式:

最简单的方式,使用 Synchronization 关键字

使用 java.util.concurrent.atomic 包中的原子类,例如 AtomicInteger

使用 java.util.concurrent.locks 包中的锁

使用线程安全的集合 ConcurrentHashMap

使用 volatile关键字,保证变量可见性

以上就是Java中锁的面试题介绍,大家对于自己不清楚的知识点,一定要及时的找资料进行解决,加强有关锁内容的记忆。更多Java学习指路:java教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

精品久久免费一区二区三区四区| 《女教师的味道3》在线观看| 乖把脚分开BY全文免费阅读| 《艳乳欲乱2》免费观看| 《女朋友的妹妹3》| 美丽的小水蜜桃| 妈妈的闺蜜| 《借种生子》电影免费观看| 《大度》韩版免费| 我的老师中韩双字| 打扑克不盖被子| 日本簧片在线观看| 少女配狗播放视频| 《疯狂瑜伽》完整版| 国内夫妇交换自拍视频| 我把校花嘴巴当套子的小说| 两人一起做AJ的视频教程| 《出差的日子》叶爱| 少女与狗2在线观看免费版高清| 日本韩国免费观看高清电视剧| 黑料网-今日黑料| 挤公交忘穿内裤被挺进| 下面的小嘴又饿了| 麻豆传媒| 《交换做爰》在线观看| 欧美黑粗大硬巴XXOO| 宝贝今天可不可以不带小雨伞| 女生给男生吃小头头| 胬肉母亲| 蜜桃| 非洲女人免费观看大全电视剧| 美女热舞| 两对夫妻同房不交换会影响感情吗| 爸爸的大DJ小说| 九九在线观看免费播放大全电视剧 | 女被强伦疯狂做爰XXX| 蜜桃浏览器| 有夫之妇精油按摩的功效与作用| 欧美产品和日韩产品的区别| 《家访的老师》动漫在线观看| 《伦敦空姐美版2023》