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

文章 > java教程 > Java中锁有哪些面试题

Java中锁有哪些面试题

头像

小妮浅浅

2021-02-03 10:30:366249浏览 · 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教程

关注

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

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

男男免费观看高清完整版在线观看.. | 免费观看已满十八岁电视剧国外| 苍老师40集全免费播放| 时尚杂志| 国产免费观看高清电视剧在线观看| 被带到满是X玩具的房间挑调游戏| 乱公伦媳..HH| 100%胸片曝光率免费| 私处按摩SPA养生精油| 老头下边又粗又大又硬| 向日葵在线观看免费高清电视剧| 成品图片的网站| 丰裕从满5| 香蕉漫画免费读漫画网下拉式| 少女尖叫之夜1-4集免费| 老公在洗澡我被公干日本| 美女和男生一起努力的生孩子视频..| 摁着她干了好几次嫩B| 绝美儿媳妇林曼晏| 狼人加鲁鲁兽天赋澳彩心水| 妈妈的绣感1| 三人互换麦子| 舒淇最惊艳三部电影| 《大度》韩版免费| 周翊然| 妈妈的职业4免费观看完整版高清| 泳装美女| 口咬的10个绝招图片| 毛片| 《妈妈让我戴上避孕套》歌词| 男生把小困困放到女生困里视频| 《请好好疼爱里面》免费观看| 九·幺 破解版| 一路向西在线播放| 大肉大捧一进一出XXOO| 性格| [汉化版]全彩漫画免费阅读 | 开会桌下把荫蒂添的好多水| 冲动的惩罚未删减 | 人野兽马狗猪大全| 巨乳童颜