java工具类需要考虑线程安全问题吗

工具类有很多种抄, 我以袭静态工具类来回答,希望是你想要的;
静态工具类,是指不用实例化就可使用的工具类, 就其方法及方法内的局部变量来说,本身就是线程安全, 要注意的就是万一工具类里的静态变量是需要线程安全的, 就要考虑了,因为静态变量是共用的; 还有一种就是方法传入的参数变量是否需要线程安全,但是一般这种情况都是在调用方法前就进行线程安全了,所以很少用考虑

以上两种情况并不常见,也建议工具类,不要设置需要线程安全的静态变量

❷ 在java中什么是线程安全的

你问的是java API中的哪些类是安全的?还是线程安全的意思?关于线程安全,是指当多个线程访问同一个变量时,该变量不会因为多线程访问产生意想不到的问题,为了避免多线程访问的不可预知的问题,对于程序中多线程能访问到的变量要加锁,即加synchronized,放在同步块中,或者对改变该变量值的方法加synchronized限制。当然jdk中自带的一些类本身就实现了该机制,本身就是线程安全的,比如StringBuffer,Vector等。多线程是程序中比较高级的一个方面,希望你能深入理解!

❸ 如何设计java线程安全类

简单来说就是多线程的时候,多线程同时修改同一个类的时候,由于访问顺回序随机导致答类功能出错,至于线程安全类设计方法很多的,Java可以用synchronize标识类,只允许一个线程在同一时间访问它,选择线程安全的数据类型例如ArrayList,数组是不安全的

❹ java中哪些线程安全

JAVA中线程安全的复map有:制Hashtable、synchronizedMap、ConcurrentHashMap。
java中map中线程安全怎么实现:
1、同步的map就是Hashtable, concurrenthashmap。
2、你看到的Hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。
java代码中线程安全级别:
1、绝对线程安全。
在任何环境下,调用者都不需要考虑额外的同步措施,都能够保证程序的正确性。这个定义要求很严格,java里面满足这个要求的类比较少,对于实现jsr133规范(java内存模型)的jdk(一般指jdk5.0之上),一般的不变类都是满足绝地线程安全的。比如 String,Integer类。一般情况下,定义了如果一个类里面所有字段都是final类型的,一般都认为这个类是不变的。不变类都是绝对线程安全的。
2、相对线程安全
在一般情况下,调用者都不需要考虑线程同步,大多数情况下,都能够正常运行。jdk里面大多数类都是相对安全的。最常见的例子是java里面Vector类。

❺ Java集合中哪些类是线程安全的

线程安全类

在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:

vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。

statck:堆栈类,先进后出

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

enumeration:枚举,相当于迭代器

除了这些之外,其他的都是非线程安全的类和接口。

线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。

其他:

1. hashtable跟hashmap的区别

hashtable是线程安全的,即hashtable的方法都提供了同步机制;hashmap不是线程安全的,即不提供同步机制 ;hashtable不允许插入空值,hashmap允许!

2. 多线程并发修改一 个 集合 怎么办

用老的Vector/Hashtable类

StringBuffer是线程安全,而StringBuilder是线程不安全的。对于安全与不安全没有深入的理解情况下,易造成这样的错觉,如果对于StringBuffer的操作均是线程安全的,然而,Java给你的保证的线程安全,是说它的方法是执行是排它的,而不是对这个对象本身的多次调用情况下,还是安全的。看看下边的例子,在StringBufferTest中有一个数据成员contents它是用来扩展的,它的每一次append是线程安全的,但众多次append的组合并不是线程安全的,这个输出结果不是太可控的,但如果对于log和getContest方法加关键字synchronized,那么结果就会变得非常条理,如果换成StringBuider甚至是append到一半,它也会让位于其它在此基础上操作的线程:

❻ Java中的类如何保证线程安全

java中,线程安全的解决方法或过程:
1.如果对象是immutable,则是线程安全的,例如专:String,可以放属心使用。
2. 如果对象是线程安全的,则放心使用。
3.有条件线程安全,对于Vector和Hashtable一般情况下是线程安全的,但是对于某些特殊情况,需要通过额外的synchronized保证线程安全。
4.使用synchronized关键字。

❼ Java中非线程安全的类如何转换成线程安全的类

一个线程安全的方法,在多个线程里竞争的调用,并不会引起数据不一致,返回结果不专同于预期等情况属,可以说它是线程安全的。
比如下面的方法是线程安全的:
public int add(int a, int b) {return a + b;},无论多少个线程同时调用这个方法,都不会因为竞争而导致错误,当然,它有可能导致溢出错误,不过这不是线程安全要关注的。
再比如下面的就不是线程安全:
int n = 0;
public int increase() {n ++; return n;}
假设有A和B两个线程调用此方法:
A 在n++之后休息了一下,别问为啥休息,它就休息了
B 这时候又n++了一下,然后两个线程都返回了结果2。

❽ JAVA中线程安全的map有哪些

JAVA中线程安全的map有:Hashtable、synchronizedMap、ConcurrentHashMap。

java中map中线程安全怎么实现:

  1. 同步的map就是Hashtable, concurrenthashmap。

  2. 你看到的Hashtable就是直接在hashmap上加了个锁,concurrenthashmap就是分成多个分段锁。

❾ java集合类中哪些是线程安全的

一些历史类的一般是线程安全的,例如:Vector,HashTable等
在jdk升级后,出现了替代一些集合的类,ArrayList,HashMap等,一般都是线程不安全的。

❿ Java哪些集合类是线程安全的

在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类:
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出
hashtable:就比hashmap多了个线程安全
enumeration:枚举,相当于迭代器
除了这些之外,其他的都是非线程安全的类和接口。
线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。
其他:
1. hashtable跟hashmap的区别
hashtable是线程安全的,即hashtable的方法都提供了同步机制;hashmap不是线程安全的,即不提供同步机制 ;hashtable不允许插入空值,hashmap允许!