小编给大家分享一下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并发编程的面试题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。