温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java并发编程的面试题有哪些

发布时间:2021-04-24 14:13:14 来源:亿速云 阅读:148 作者:小新 栏目:编程语言

小编给大家分享一下java并发编程的面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

1、如何实现Vector(HashTable)的线程安全

用synchronized关键词修改每一种方法。

根据synchronized关键词引用问题。

2、ConcurncurentHashMap的线程安全与HashTable不同:

ConcurrentHashMap可以理解为,它不是直接持有一个HashMao,而是用多个Segment来代替一个HashMap。但是实际实现的Map部分与HashMap的原理基本相同,通过脚标取模来确定table[i]的所属部分,从而获得不同的段锁。

每一个Segment都有一个锁,通过分段加锁,既实现了线程安全,又兼顾了性能。

3、synchronizedList和Vector的区别

在synchronizedList的实现中,synchronized关键字修改代码块;Vector的修改方法。

synchronizedList只包含add、get、remove等代码块,但Iterator不同步,经过一段时间后需要手动同步处理的Vector也锁定了Iterator。

synchronizedList可以将所有List实现类包装成同步集合,其内部仍然拥有List实现类(ArrayList/LinkedList),因此除了同步之外,几乎只有这个实现类和Vector之间的区别。

4、ConcurentLinkedQueue插入算法

算法的核心可以概括为两个步骤:

首先检查是否为中间状态(SPIN)

再次尝试CAS插入。

以上是“java并发编程的面试题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI