高并发java实现方式有哪些?该怎么实现?

TheDisguiser 2020-05-08 18:00:34 java常见问答 10602

高并发大家都知道吧,高并发的各种实现方式你们都知道有哪些吗?又该怎么实现呢?一起来看看吧。

第一种方法:String.intern()

String.intern()是一个Native方法,它会在底层调用C++的 StringTable::intern实现方法。当通过语句str.intern()调用intern()方法后,JVM就会在当前类的常量池中查找是否存在与str等值的String,如果存在就直接返回常量池中相应Strnig的引用;、不存在的话,就会在常量池中创建一个等值的String,并返回这个String在常量池中的引用。

实现代码:

高并发java

第二种方法:乐观锁

乐观锁是相对悲观锁而言的,这是为了避免可能的数据库幻读、业务处理时间过长等等原因而引起数据处理错误的一种机制,乐观锁一般不会去刻意使用数据库本身的锁机制,它会依赖数据本身来保证数据的正确性。

实现代码:

高并发java

第三种方法:类ConcurrentHashMap实现

ConcurrentHashMap是Java5中新增的一个关乎线程安全的Map集合,它可以用来替代HashTable。HashTable容器现在在竞争激烈的并发环境下,已经表现出了效率低下的缺点,原因是每个访问HashTable的线程都必须竞争同一把锁。如果容器里有多把锁,每一把锁都用于锁容器其中一部分数据的话,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,开始会把数据分成一段一段的存储,再给每一段数据配一把锁,这样当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。

实现代码:

高并发java

以上就是本文的全部内容了,想知道更多java常见问答的相关知识就请关注我们的网站吧。

推荐阅读:

高并发服务器构架SEDA是什么?有什么特点?

高并发和多线程的区别在哪里?都有什么概念?

高并发开发原理是什么?如何理解?