synchronizedList(
时间: 2024-06-18 21:04:00 浏览: 19
`synchronizedList()`是Java中的一个方法,用于创建一个同步的线程安全列表。当多个线程需要访问同一个列表时,可能会出现线程安全问题,`synchronizedList()`方法可以确保多个线程能够安全地访问同一个列表。下面是一个使用`synchronizedList()`的示例程序:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SyncListExample {
public static void main(String[] args) {
// 创建一个普通的List
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
// 使用synchronizedList()方法创建一个同步的List
List<String> syncList = Collections.synchronizedList(list);
// 在多个线程中同时访问syncList
Runnable runnable = () -> {
for (int i = 0; i < 100; i++) {
syncList.add(Thread.currentThread().getName() + " " + i);
}
};
Thread thread1 = new Thread(runnable, "Thread 1");
Thread thread2 = new Thread(runnable, "Thread 2");
thread1.start();
thread2.start();
// 等待两个线程执行完毕
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 输出syncList中的元素数量
System.out.println("syncList size: " + syncList.size());
}
}
```
上述程序中,我们首先创建了一个普通的List,然后使用`synchronizedList()`方法创建了一个同步的List。我们创建了两个线程,让它们同时向syncList中添加元素。由于syncList是同步的,所以多个线程可以安全地访问它。最后我们输出了syncList中的元素数量,可以看到它的大小为200,即两个线程一共向其中添加了200个元素。