1楼:匿名用户
同步的map就是hashtable, concurrenthashmap.
你看到的hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。
java中线程安全的map有哪些?
2楼:熊熊熊灬熊孩子
java中线程安全的map有:hashtable、synchronizedmap、concurrenthashmap。
同步的map就是hashtable, concurrenthashmap。
你看到的hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。
java**中线程安全级别:
绝对线程安全。
在任何环境下,调用者都不需要考虑额外的同步措施,都能够保证程序的正确性。
这个定义要求很严格,java里面满足这个要求的类比较少,对于实现jsr133规范(java内存模型)的jdk(一般指jdk5.0之上),一般的不变类都是满足绝地线程安全的。比如 string,integer类。
一般情况下,定义了如果一个类里面所有字段都是final类型的,一般都认为这个类是不变的。不变类都是绝对线程安全的。
相对线程安全
在一般情况下,调用者都不需要考虑线程同步,大多数情况下,都能够正常运行。jdk里面大多数类都是相对安全的。最常见的例子是java里面vector类。
3楼:匿名用户
hashtable、synchronizedmap、concurrenthashmap
二楼说的hashmap是非线程安全的
4楼:jee_不高
hashtable我记得好像只有这一个
5楼:呓梦寻花
concurrentmap 这个效率高点
hashmap
如何实现线程安全的hashmap
6楼:匿名用户
有2种办法让hashmap线程安全,分别如下:
方法一:通过collections.synchronizedmap()返回一个新的map,这个新的map就是线程安全的。
这个要求大家习惯基于接口编程,因为返回的并不是hashmap,而是一个map的实现。
方法二:重新改写了hashmap,具体的可以查看java.util.concurrent.concurrenthashmap. 这个方法比方法一有了很大的改进。
7楼:匿名用户
public class maptest catch (interruptedexception ex)
system.out.println(iterator.nextelement());}}
}).start();
new thread(new runnable() catch (interruptedexception ex)
system.out.println(iterator.nextelement());}}
}).start();}}
这是没有异常**
public class maptest catch (interruptedexception ex)
system.out.println(iterator.next());}}
}).start();
new thread(new runnable() catch (interruptedexception ex)
system.out.println(iterator.next());}}
}).start();}}
这里是有异常**,iterator 时产生异常的主要原因,iterator创建的时候会拿到创建时容器的容量,一个整形数据。 读取的时候就拿这个容量数据先去检查是不是和当前实际容量相等,如果不相等就concurrentmodificationexception异常,相等就开始读数据,所谓线程安全就是一个线程在使用iterator 读数据的时候,另外线程往里加数据,结果就出现iterator 保存的容器容量和当前实际容量不等了,就不安全了。
而在hashtable中使用了enumeration这个线程安全的对象,就是说在另外的线程里加东西的时候他会知道当前容器已经改变,所以使用他是线程安全的。
如果楼主还不明白去开下源**就知道了。
8楼:匿名用户
map m = collections.synchronizedmap(new hashmap());即可
9楼:匿名用户
如果楼主只是要线程安全的功能的话..
可以考虑用
java.util.concurrent.concurrenthashmap类.这是一个线程安全的hashmap类.
或者hashtable也行(注意大小写)
莫非楼主是要仿照hashmap自创一个线程安全的hashmap类?..
10楼:day忘不掉的痛
直接用hashtable,hashtable线程安全。
我一般都会hashmap凡是在一个方法内部new并且不传到方法外面的基本上可以用hashmap,线程不安全的时候用currenthashmap。
比如类属性是map或者静态属性map而且会在不同的线程并发执行操作map时。
11楼:匿名用户
hashtable不就可以吗。
如何设计并实现一个线程安全的 map
12楼:司马刀剑
有2种办法让hashmap线程安全,分别
如下:方法一:通过collections.
synchronizedmap()返回一个新的map,这个新的map就是线程安全的。 这个要求大家习惯基于接口编程,因为返回的并不是hashmap,而是一个map的实现。
方法二:重新改写了hashmap,具体的可以查看java.util.concurrent.concurrenthashmap. 这个方法比方法一有了很大的改进。
java中线程安全的map有哪些?
13楼:熊熊熊灬熊孩子
java中线程安全的map有:hashtable、synchronizedmap、concurrenthashmap。
同步的map就是hashtable, concurrenthashmap。
你看到的hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。
java**中线程安全级别:
绝对线程安全。
在任何环境下,调用者都不需要考虑额外的同步措施,都能够保证程序的正确性。
这个定义要求很严格,java里面满足这个要求的类比较少,对于实现jsr133规范(java内存模型)的jdk(一般指jdk5.0之上),一般的不变类都是满足绝地线程安全的。比如 string,integer类。
一般情况下,定义了如果一个类里面所有字段都是final类型的,一般都认为这个类是不变的。不变类都是绝对线程安全的。
相对线程安全
在一般情况下,调用者都不需要考虑线程同步,大多数情况下,都能够正常运行。jdk里面大多数类都是相对安全的。最常见的例子是java里面vector类。
西安中软国际,软通,java工程师待遇怎么样
1楼 匿名用户 中软国际稍微比软通好一点,但是二者都是以外包为主的公司,你要想好 西安中软国际和软通动力是不是真的很坑? 35 2楼 匿名用户 网上自己搜搜,全是差评。呵呵,以后接到他家 直接挂掉吧。垃圾! 3楼 1大鸭梨 中软国际应该还不错 4楼 匿名用户 中软不坑啊,软通不了解。 5楼 匿名用户...
一阶线性微分方程中的线性怎么理解
1楼 匿名用户 微分方程,表示含有未知函数的导数的方程。一阶指最高求导阶数为一。线性是指所有未知函数和未知函数的导数在方程中都以线性组合的方式出现。比如y 9y ln x 0 一阶线性微分方程中的线性什么意思? 2楼 答 仅含未知数的一次幂的方程称为线性方程。 yy 2xy 3 yy 有相乘关系,所...
延安精神的对当今中国有什么现实意义
1楼 落莫山 延安精神对当今中国的现实意义非常重大。 尤其是当年《新华 》的许多社论,水平都非常之高,强烈呼吁集册成书,让更多的年轻人了解延安精神的本质。 而毛与黄炎培在延安窑洞里彻夜长谈的谈话稿更应该作为延安精神的序言,令后人背诵。足以成为中国近百年来第一文章。 延安精神对当今中国的发展有哪些现实...