使用Java编写一个线程安全的集合
时间: 2024-03-14 19:46:37 浏览: 80
Java中提供了很多线程安全的集合类,例如ConcurrentHashMap、CopyOnWriteArrayList等,我们可以通过实现类似于这些集合类的方式来编写一个线程安全的集合。
以下是一个简单的例子:一个线程安全的列表,它支持添加和获取元素的操作。
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ThreadSafeList<E> {
private final List<E> list;
public ThreadSafeList() {
this.list = Collections.synchronizedList(new ArrayList<>());
}
public void add(E element) {
synchronized (list) {
list.add(element);
}
}
public E get(int index) {
synchronized (list) {
return list.get(index);
}
}
}
```
在这个例子中,我们使用了`Collections.synchronizedList()`方法来创建一个线程安全的列表,并使用`synchronized`关键字来保证对列表的操作是线程安全的。我们可以通过对`add()`和`get()`方法加锁来确保多个线程同时操作列表时不会出现问题。
阅读全文