Concurrent Collections
In concurrent programming, it is important to use data structures that are thread-safe, meaning they can be accessed and modified by multiple threads simultaneously without causing data corruption or inconsistencies. Java provides a set of concurrent collections specifically designed for this purpose.
CopyOnWriteArrayList
One commonly used concurrent collection in Java is the CopyOnWriteArrayList
. It is an implementation of the List
interface that allows thread-safe access and modification of its elements. The CopyOnWriteArrayList
guarantees that all write operations are performed on a separate copy of the underlying array, while the original array remains unchanged.
Let's take a look at an example that demonstrates the usage of CopyOnWriteArrayList
:
xxxxxxxxxx
24
import java.util.concurrent.CopyOnWriteArrayList;
public class Main {
public static void main(String[] args) {
// Create a concurrent list
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
// Add elements to the list
list.add("Java");
list.add("Spring Boot");
list.add("MySQL");
// Iterate over the list
for (String element : list) {
System.out.println(element);
}
// Add an element while iterating
list.add("Hibernate");
// Print the updated list
System.out.println(list);
}
}
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment