线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
“线程安全”也不是指线程的安全,而是指内存的安全;指的是在堆内存中的数据由于可以被任何线程访问到,在没有限制的情况下存在被意外修改的风险。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
ArrayList和Vector有什么区别?
HashMap和HashTable有什么区别?
StringBuilder和StringBuffer有什么区别?
这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;StringBuilder是非线程安全的,StringBuffer是线程安全的。