高并发大家都知道吧,高并发的各种实现方式你们都知道有哪些吗?又该怎么实现呢?一起来看看吧。
第一种方法:String.intern()
String.intern()是一个Native方法,它会在底层调用C++的 StringTable::intern实现方法。当通过语句str.intern()调用intern()方法后,JVM就会在当前类的常量池中查找是否存在与str等值的String,如果存在就直接返回常量池中相应Strnig的引用;、不存在的话,就会在常量池中创建一个等值的String,并返回这个String在常量池中的引用。
实现代码:
第二种方法:乐观锁
乐观锁是相对悲观锁而言的,这是为了避免可能的数据库幻读、业务处理时间过长等等原因而引起数据处理错误的一种机制,乐观锁一般不会去刻意使用数据库本身的锁机制,它会依赖数据本身来保证数据的正确性。
实现代码:
第三种方法:类ConcurrentHashMap实现
ConcurrentHashMap是Java5中新增的一个关乎线程安全的Map集合,它可以用来替代HashTable。HashTable容器现在在竞争激烈的并发环境下,已经表现出了效率低下的缺点,原因是每个访问HashTable的线程都必须竞争同一把锁。如果容器里有多把锁,每一把锁都用于锁容器其中一部分数据的话,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,开始会把数据分成一段一段的存储,再给每一段数据配一把锁,这样当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。
实现代码:
以上就是本文的全部内容了,想知道更多java常见问答的相关知识就请关注我们的网站吧。
推荐阅读: