import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class ThreadSafeCollectionsExample {
// 使用 Collections.synchronizedList 包装的线程安全列表
public static void synchronizedListExample() {
List<String> list = Collections.synchronizedList(new java.util.ArrayList<>());
// 必须在同步块中使用以确保线程安全
synchronized (list) {
for (String item : list) {
System.out.println(item);
}
}
}
// 使用 CopyOnWriteArrayList 的线程安全列表
public static void copyOnWriteArrayListExample() {
List<String> list = new CopyOnWriteArrayList<>();
// 可以直接使用,不需要额外同步
list.add("Item 1");
list.add("Item 2");
for (String item : list) {
System.out.println(item);
}
}
public static void main(String[] args) {
synchronizedListExample();
copyOnWriteArrayListExample();
}
}
Collections.synchronizedList:
Collections.synchronizedList 是一个静态方法,它返回一个线程安全的列表包装器。CopyOnWriteArrayList:
CopyOnWriteArrayList 是 java.util.concurrent 包中的一个类,它是一个线程安全的列表实现。这两个示例展示了如何使用 Java 中的线程安全集合类来确保多线程环境下的数据一致性。
下一篇:java.lang.object
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站