首页 > 试题广场 >

java中HashTable, Vector, TreeSe

[不定项选择题]
java中Hashtable, Vector, TreeSet, LinkedList哪些线程是安全的?
  • Hashtable
  • Vector
  • TreeSet
  • LinkedList
答案:A B

线程安全概念:
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

线程安全问题都是由全局变量静态变量引起的。

若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。



LinkedList 和 ArrayList 都是不同步的,线程不安全;
Vector 和 Stack 都是同步的,线程安全;
Set是线程不安全的;

Hashtable的方法是同步的,线程安全;
HashMap的方法不是同步的,线程不安全;

编辑于 2021-09-10 17:50:56 回复(13)

简单记忆线程安全的集合类: 喂! SHE   喂是指   vector S 是指 stack H 是指     hashtable E 是指: Eenumeration

发表于 2017-06-29 09:58:31 回复(29)

AB

发表于 2014-12-30 15:55:22 回复(0)
答案:AB
HashTable是线程安全的
Vector是线程安全的ArrayList
TreeSet和LinkedList都不是线程安全的
编辑于 2021-09-10 16:03:32 回复(17)

vector :就比 arraylist 多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。

statck :堆栈类,先进后出;

hashtable :就比 hashmap 多了个线程安全

enumeration :枚举,相当于迭代器

StringBuffer 是线程安全,而 StringBuilder 是线程不安全的。

Properties

发表于 2015-08-31 16:12:17 回复(2)
之前看到有人总结的线程安全的有:vector,stack,hashtable,enumeration.
就是“喂,SHE”!
发表于 2017-08-20 10:45:07 回复(1)
选AB

记住,集合框架(不算JUC包下的)中线程安全的类,Vector,Stack(Vector的子类),Hashtable,Properties(Hashtable的子类),枚举Enum
编辑于 2018-06-29 11:43:29 回复(1)
简单记忆线程安全的集合类: 喂! SHE !   喂是指   vector , S 是指 stack , H 是指     hashtable , E 是指: Eenumeration
ArrayList、LinkedList,set,hashmap都是线程不安全的
vector,stack,hashtable,Eenumeration是线程安全的。
关于hashtable:一般现在不建议使用hashtable,遗留类,其内部的实现很多都没有优化。即使在多线程的情况下,现在也有同步的ConcurrentMap来代替,没必要因为是多线程而使用hashtable
编辑于 2021-12-20 10:21:25 回复(0)

线程安全概念:

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

**哪些是线程安全的?**
Vector、Stack、Hashtable是线程安全的;
LinkedList、ArrayList、Set、HashMap是线程不安全的
编辑于 2020-10-19 10:35:58 回复(0)
记住,只要是速度快的基本上就不是安全的
发表于 2018-06-26 18:41:10 回复(0)
TreeSet HashSet都是非安全线程,方法都没有实现安全的机制
发表于 2015-11-28 22:42:37 回复(2)
线程安全的有Hashtable,Properties,Vector,Stack,StringBuffer,枚举类。
发表于 2023-09-08 17:25:36 回复(0)
Hashmap和vector 线程安全
发表于 2021-08-13 13:06:45 回复(0)

线程安全概念:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

线程安全问题都是由全局变量及静态变量引起的。

若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。

LinkedListArrayList都是不同步的,线程不安全;

VectorStack 都是同步的,线程安全;

Set是线程不安全的;

Hashtable的方法是同步的,线程安全;

HashMap的方法不是同步的,线程不安全;

发表于 2023-09-08 09:05:41 回复(0)
HashTable原来是线程安全的……
发表于 2023-05-08 11:33:35 回复(0)
线程安全的效率不高,线程不安全的效率高。
发表于 2023-04-06 17:15:48 回复(0)
HashTable是线程安全的,Vector是线程安全的
发表于 2022-10-06 21:56:22 回复(0)
记住,集合框架(不算JUC包下的)中线程安全的类,Vector,Stack(Vector的子类),Hashtable,Properties(Hashtable的子类),枚举Enum
发表于 2021-11-02 20:29:42 回复(0)
线程安全:Hashtable,Vector,Stack
线程不安全:Set,ArrayList,LinkedList,HashMap
发表于 2021-06-05 21:43:08 回复(0)

常用集合线程安全问题

图片说明

发表于 2021-02-01 16:25:15 回复(0)