tzkr.net
当前位置:首页 >> 哪些集合线程安全 >>

哪些集合线程安全

一些历史类的一般是线程安全的,例如:vector,hashtable等 在jdk升级后,出现了替代一些集合的类,arraylist,hashmap等,一般都是线程不安全的.

java集合框架提供了多种synchronized集合, 比如Vector, HashTable, Collections的synchronizedXxx方法的返回值等.synchronized集合是线程安全的, 但不是严格线程安全的. 根据JCIP第二章关于线程安全的定义--线程安全的类无需调用方进行额外的同步--synchronized集合是不满足该定义的. 如果我们将线程安全的定义放宽一些--单次调用对象的方法而无需调用方进行额外的同步, 这样synchronized集合就符合定义了.

JAVA中线程安全的map有:Hashtable、synchronizedMap、ConcurrentHashMap.java中map中线程安全怎么实现:1、同步的map就是Hashtable, concurrenthashmap.2、你看到的Hashtable就是直接在hashmap上加了个锁,

线程安全是指要控制多个线程对某个资源的有序访问或修改,而在这些线程之间没有产生冲突. 在java里,线程安全一般体现在两个方面: 1、多个thread对同一个java实例的访问(read和modify)不会相互干扰,它主要体现在关键字synchronized.

加入在尾,删除在头,这个是队列哦.java.util.concurrent.LinkedBlockingDeque用这个吧,双端的,做队列或者堆栈都可以,线程安全上这个类已经帮你考虑了,你只需要看看它的使用方法就行了.

参考MSDNLIST线程安全--------------------------------------------------------------------------------此类型的公共静态(在 Visual Basic 中为 Shared)成员是线程安全的. 但不能保证任何实例成员是线程安全的.只要不修改该集合, List就可以同时支持多个阅读器. 枚举整个集合本质上不是一个线程安全的过程.在枚举与一个或多个写访问竞争的罕见情况下,确保线程安全的唯一方法是在整个枚举期间锁定集合.若允许多个线程对集合执行读写操作,您必须实现自己的同步.

1、你是指并发操作时的线程安全吗?2、容器中线程安全的如:vectory,hashtable,非线程安全的如:hashmap,arrylist等.3、对于原定义非线程的容器如:hashmap,arraylist可以使用Collections中的synchronizedList(list),synchronizedMap(map),synchronizedSet(set)等方法来使原来非线程安全的容器编程线程安全.4、另一方面容器中使用泛型:容器也是使容器安全的一种方式.

多线程编程,没那么简单的通常多个数据都需要同步,不管是线程安全的集合还是方法,都不能安全了

: hashtable, vector是线程安全的

网站首页 | 网站地图
All rights reserved Powered by www.tzkr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com