### 1. Executors
### 2. Concurrent Collections
### 3. Atomic Variables
### 4. Locks
### 5. Synchronizers
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ConcurrentHashMap;
public class Jsr166Example {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10; i++) {
final int taskId = i;
executor.submit(() -> {
System.out.println("Task " + taskId + " is being processed.");
});
}
executor.shutdown();
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
System.out.println("Value of key1: " + map.get("key1"));
System.out.println("Value of key2: " + map.get("key2"));
System.out.println("Value of key3: " + map.get("key3"));
}
}