JAVA中线程安全的map都有哪些?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中线程安全的map都有哪些?相关的知识,希望对你有一定的参考价值。
如题。
JAVA中线程安全的map有:Hashtable、synchronizedMap、ConcurrentHashMap。
java中map中线程安全怎么实现:
同步的map就是Hashtable, concurrenthashmap。
你看到的Hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。
java代码中线程安全级别:
绝对线程安全。
在任何环境下,调用者都不需要考虑额外的同步措施,都能够保证程序的正确性。
这个定义要求很严格,java里面满足这个要求的类比较少,对于实现jsr133规范(java内存模型)的jdk(一般指jdk5.0之上),一般的不变类都是满足绝地线程安全的。比如 String,Integer类。一般情况下,定义了如果一个类里面所有字段都是final类型的,一般都认为这个类是不变的。不变类都是绝对线程安全的。
相对线程安全
在一般情况下,调用者都不需要考虑线程同步,大多数情况下,都能够正常运行。jdk里面大多数类都是相对安全的。最常见的例子是java里面Vector类。
二楼说的HashMap是非线程安全的本回答被提问者采纳 参考技术B ConcurrentMap 这个效率高点
HashMap 参考技术C HashTable我记得好像只有这一个
如何确保Java线程安全?
在Java中可以有很多方法来保证线程安全——同步,使用原子类(atomicconcurrentclasses),实现并发锁,使用volatile关键字,使用不变类和线程安全类。 参考技术A java中,线程安全的解决方法或过程:1.如果对象是immutable,则是线程安全的,例如:String,可以放心使用。
2. 如果对象是线程安全的,则放心使用。
3.有条件线程安全,对于Vector和Hashtable一般情况下是线程安全的,但是对于某些特殊情况,需要通过额外的synchronized保证线程安全。
4.使用synchronized关键字。
以上是关于JAVA中线程安全的map都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章
用过哪些Map,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如hashcode,扩容等