简介:线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。 面试官:ArrayList和LinkedList有什么区别?** 参考答案: 1、ArrayList的实现是基于数组,LinkedList的实现是基于双向链表; 2、对于随机访问ArrayList要优于LinkedList,...
其中一些集合已经是线程安全的(Hashtable 和 Vector),通过同步的封装工厂(Collections.synchronizedMap()、synchronizedList() 和 synchronizedSet()),其余的集合均可表现为线程安全的。 java.util.concurrent 包添加了多个新的线程安全集合类(ConcurrentHashMap、CopyOnWriteArrayList 和 CopyOnWriteArraySet)。这些类的目的是提供...
Hashtable、synchronizedMap、ConcurrentHashMap 二楼说的HashMap是非线程安全的
volatile一般用于对变量的写操作,不依赖于当前值的场景中,比如状态标记量等等。 第3个,针对有序性。 也可以使用synchronized关键字定义同步代码块,或者同步方法来保证有序性。另外也可以通过Lock接口来保证有序性。 以上就是对Java保证线程安全的思路。当然,保证对象线程安全的方式还有很多,比如还可以使用ThreadLocal实现...
JodaTime:线程安全 SimpleDateFormat线程不安全的代码示例如下: package io.binghe.concurrency.example.commonunsafe; import lombok.extern.slf4j.Slf4j; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.concurrent.CountDownLatch; ...